Hallo Java Forum,
hab ein Problem eine LinkedList in eine Datei zu speichern: wenn ich über
einen Eintrag zur liste hinzufüge und diese dann in das File speichern will werden nur die letzten Beiden Einträge in der Datei richtig gespeichert die vorhergehenden Einträge werden mit dem vorletzten Einrag überschrieben
Die Auslesemethode scheint die datei noch richtig auszulesen daher denke ich, dass das Problem beim schreiben liegt
Lesen:
Schreiben:
hab ein Problem eine LinkedList in eine Datei zu speichern: wenn ich über
Code:
public void newEntry() throws IOException{ // Diese Methode fügt einen neuen Eintrag hinzu
LinkedList<Entry> myPhonebook = new LinkedList<Entry>();
myPhonebook = read(filename);
Entry neuerEintrag = new Entry();
neuerEintrag.setName();
neuerEintrag.setVorwahl();
neuerEintrag.setNummer();
myPhonebook.addLast(neuerEintrag);
writeToFile(filename, myPhonebook);
}
Die Auslesemethode scheint die datei noch richtig auszulesen daher denke ich, dass das Problem beim schreiben liegt
Lesen:
Code:
public static LinkedList read(String filename) { // Diese Methode macht die Umwandlung von der Datei in eine Liste
LinkedList<Entry> ThePhonebook = new LinkedList<Entry>();
Entry enter = new Entry();
phonebook.In.open(filename);
String file=phonebook.In.readFile();
String[] fileseq=file.split(","); // Aufspaltung des files in die einzelnen Einträge
for(int i=0; i<=fileseq.length-1;i++) {
String[] addrSeq = new String[3]; //Aufspaltung der Einträge und Eintrag in die Liste
addrSeq=fileseq[i].split(":", 3);
enter.name=addrSeq[0];
enter.vorwahl=Integer.parseInt(addrSeq[1]);
enter.nummer=Integer.parseInt(addrSeq[2]);
ThePhonebook.addLast(enter);
}
phonebook.In.close();
return ThePhonebook;
}
Code:
public static void writeToFile(String filename, LinkedList<Entry> neu) {
phonebook.Out.open(filename);
for(int i=0; i<=neu.size()-1;i++) {
phonebook.Out.print(neu.get(i).name+":0"+neu.get(i).vorwahl+":"+neu.get(i).nummer+",");
}
phonebook.Out.close();
}