Hallo!
Ich möchte eine ArrayList in eine Datei speichern und wieder auslesen.
Eigentlich weiß ich wie man Daten und Objekte per Data- bzw. Objectout/inputstream handhabt.
Doch dies funktioniert irgendwie nicht:
Methode zum speichern in der Klasse SpeichernLaden:
"Fehler beim Speichern1" wird noch ausgegeben, dann tritt ein Fehler auf und "Fehler beim Speichern" wird ausgegeben.
Die ArrayList wird aus der Klasse BenutzerVerwaltung übergeben, die Benutzer (also Objekte der Klasse Benutzer) verwaltet. In der ArrayList befinden sich also einzelne Objekte der Klasse Benutzer.
Benutzerverwaltung:
Im Controller wird, wenn gespeichert, also die Datei geschrieben werden soll, folgende Methode aufgerufen:
Ich weiß aber (Dank des BlueJ Debuggers), dass eigentlich alles bis "oos.writeObject..." funktioniert, da die ArrayList benutzer an dieser Stelle vollständig existiert.
Folglich habe ich keine wirkliche Ahnung, wo der Fehler liegt. (Wahrscheinlich ein einfacher Syntaxfehler)
Danke schon mal im Vorraus für eure Hilfe, mfG
Petter
Ich möchte eine ArrayList in eine Datei speichern und wieder auslesen.
Eigentlich weiß ich wie man Daten und Objekte per Data- bzw. Objectout/inputstream handhabt.
Doch dies funktioniert irgendwie nicht:
Methode zum speichern in der Klasse SpeichernLaden:
Java:
public void speichern(ArrayList<Benutzer> benutzer) {
try{
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("daten.ncr"));
System.out.println("Fehler beim Speichern1");
oos.writeObject((ArrayList<Benutzer>) benutzer);
System.out.println("Fehler beim Speichern2");
oos.flush();
oos.close();
}
catch(Exception e){
System.out.println("Fehler beim Speichern");
}
}
Die ArrayList wird aus der Klasse BenutzerVerwaltung übergeben, die Benutzer (also Objekte der Klasse Benutzer) verwaltet. In der ArrayList befinden sich also einzelne Objekte der Klasse Benutzer.
Benutzerverwaltung:
Java:
import java.util.ArrayList;
import java.util.Iterator;
public class BenutzerVerwaltung
{
private ArrayList<Benutzer> benutzer;
private Controller controller;
public BenutzerVerwaltung(Controller cntrlr){
controller = cntrlr;
benutzer = new ArrayList<Benutzer>();
}
public void neuerBenutzer(String name){
benutzer.add(new Benutzer(name));
}
public void laden(ArrayList geladeneBenutzerListe){
benutzer = geladeneBenutzerListe;
}
public ArrayList<Benutzer> gibBenutzer(){
return benutzer;
}
}
Im Controller wird, wenn gespeichert, also die Datei geschrieben werden soll, folgende Methode aufgerufen:
Java:
public void speichern(){
speichernLaden.speichern(benutzerVerwaltung.gibBenutzer());
}
Ich weiß aber (Dank des BlueJ Debuggers), dass eigentlich alles bis "oos.writeObject..." funktioniert, da die ArrayList benutzer an dieser Stelle vollständig existiert.
Folglich habe ich keine wirkliche Ahnung, wo der Fehler liegt. (Wahrscheinlich ein einfacher Syntaxfehler)
Danke schon mal im Vorraus für eure Hilfe, mfG
Petter