Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
habe eine Klasse Benutzer erstellt.
Objekte dieser Klasse werden zur Laufzeit erzeugt und in einem Vector gesichert.
Nun will ich das ganze Persistent machen. Das in die Datei schreiben funktioniert auch einwandfrei, habe es auch im Jbuilder debugger überprüft.
Aber irgendwas stimm nicht mit der lese funktion...Das "Array" bleibgt permanent leer.
Hier der Code:
Code:
public class AdminFrame extends JFrame implements Serializable {
.
.
Vector benutzerArray = new Vector();
.
.
}
void jbInit() throws Exception {
.
.
.
this.leseDatei();
this.refresh();
.
.
}
public void refresh() {
for (i=0;i<benutzerArray.size() ;i++ ) {
Benutzer Hans = (Benutzer) benutzerArray.elementAt(i);
jPanel1.add(Hans.Button);
Hans.bname = Hans.getName();
System.out.println(Hans.bname);
repaint();
}
}
public void schreibeDatei() {
try {
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("c:\\tmp\\usr.txt"));
out.writeObject(benutzerArray);
out.flush();
out.close();
}
catch (Exception ex) {
System.out.println("fehler"+ex);
}
}
//////////////HIER DAS PROBLEM MEINER MEINUNG NACH////////////
public void leseDatei() {
try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream("c:\\tmp\\usr.txt"));
Vector tmp = new Vector();
tmp=(Vector)in.readObject();
System.out.println(tmp.firstElement());
}
catch (Exception ex) {
System.out.println("fehler"+ex);
}
}
Wie gesagt der tmp Vector bleibt beim debuggen einfach leer, obwohl die datei existiert von der er lesen soll.
so wie du das bei dem Frame gemacht hast. Deine Klasse muss "implements Serializable" dranstehen haben... dann kannst du einfach den Vector per writeObject() und dann per readObject schreiben / lesen
Hmmm, aber wenn das schreiben doch funktioniert müsste das lesen aus der datei auch "unproblematisch" sein.
In den Vector kommen Elemente der Klasse Benutzer. Heisst das ich soll das implements Serializable an dieser Klasse anwenden? Und wenn ja, was wäre dann noch nötig? Wieder eine schreibe/lese funktion um alle attribute dieser Objekte zu speichern?
Wie man sicher erkennt "seriailisere" ich zum ersten mal, daher entschuldige ich mich für meine naive fragerei :wink: