Pigny: Abgespeicherte Objekte wieder einlesen

Beitrag lesen

Na Hallo,

ich dank Dir erstma für Deine Hilfe vom letzten ma!

Also ich hab eine Funktion für's Serialisieren:

public void writeUser(UserObject Obj[]){
File tmp = new File(FilePath);
tmp.mkdir();

try{
  ObjectOutputStream objOut = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(FilePath+"\"+FileName)));
  for(int i=0;i<Obj.length;i++){
   objOut.writeObject(Obj);
  }
  objOut.close();
}
catch(FileNotFoundException fne){
  System.out.println("ObjectWriter: Datei konnte nich gefunden werden!\n"+fne);
}
catch(IOException e){
  System.out.println("ObjectWriter: Es ist ein Fehler beim oeffnen aufgetreten!\n"+e);
}
}

Da übergeben ich nur die Referenz des Feldes und schreibe die Daten raus.

Ich hab mir das so vorgestellt, dass ich mir wieder ein Feld anlege:

UserObject kunden[] = new UserObject[100];

und dieses da an die zweite Funktion einfach übergebe:

rw_data.ReadUser(kunden);

und die Daten in diesem Objekt-Feld aufnehme.
Mein Entwurf für die Read-Funktion sieht bis jetzt wie folgt aus:

public void ReadUser(UserObject Obj[]){

try{
  ObjectInputStream objIn = new ObjectInputStream(new BufferedInputStream(new FileInputStream(FilePath+"\"+FileName)));
  for(int i=0;i<Obj.length;i++) Obj[i] = (UserObject)ObjIn.readObject();
  ObjIn.close();
}
catch(FileNotFoundException fne){
  System.out.println("ObjectReader: Datei konnte nich gefunden werden!\n"+fne);
  }
catch(IOException e){
  System.out.println("ObjectReader: Es ist ein Fehler beim oeffnen aufgetreten!\n"+e);
}
catch(ClassNotFoundException cne){
  System.out.println("ObjectReader: Diese Funktion wird leider nicht unterstützt!\n"+cne);
}
}

aber die FOR-Schleife haut nich hin. Das weiß ich schon mal. Aber ich weiß nicht, was ich anders machen soll. Wie komm ich, nach dem ich ein Objekt ausgelesen habe zum nächsten?

Ich hoffe Du kannst was damit anfangen..

Grüsse Pigny

P.S.:
Fehlermeldung:
Exception in thread "main" java.lang.ClassCastException
         at rw_data.ReadUser(rw_data.java:125) ->is in der for-Schleife
         at test.main(test.java:43)-> der Funktionsaufruf