Hallo, ich sitze derzeit an einem Programm was eine CD-Sammlung verwalten soll. Zusätzlich zu dem üblichen Objektfeld soll die Sammlung in einer Datei gespeichert werden. Ich möchte nun wenn ich das Programm z. B. zum zweiten mal starte und neue CDs eingebe diese an die bereits vorhanden in der Textdatei anfügen. Und das soll eben immer so sein. Gibt es eine Möglichkeit das ständige Auslesen der Datei und Einfügen in das Objektfeld zu vermeiden um die Datensätze zu aktualisieren?
Ich hatte mir das, in meinem jugendlichen Leichtsinn, in etwa so gedacht. Das funktioniert aber so nicht:
Mit der ersten Zeile klappt das ganz gut, diese soll ja auch bei jedem Speichervorgang aktualisiert werden, aber sonst soll nur in der Datei angefügt werden und nicht überschrieben werden.
MfG
Ich hatte mir das, in meinem jugendlichen Leichtsinn, in etwa so gedacht. Das funktioniert aber so nicht:
Java:
public void speichern () {
//Methode zum Speichern in einer Textdatei
String line;
FileReader fi;
BufferedReader in;
try
{
PrintStream out = new PrintStream("Liste.txt");
out.println(cds[anzCDs-1].getID()); //erste Zeile zeigt immer die letzte ID (entspricht aktuellem Füllstand)
fi = new FileReader("Liste.txt");
in = new BufferedReader(fi);
line = in.readLine(); //Füllstand lesen
int anz = Integer.parseInt(line);
for (int i = 0; i < anz; i++) { //Schleife um die bereits gefüllten zeilen zu überspringen um
//danach weiter zu schreibem
line = in.readLine();
}
for (int i = 0; i < anzCDs; i++) { //Schreiben der Daten
out.println(cds[i].toString());
}
in.close();
}
catch (Exception e) {
System.out.println("Fehler" + e.getMessage());
}
Mit der ersten Zeile klappt das ganz gut, diese soll ja auch bei jedem Speichervorgang aktualisiert werden, aber sonst soll nur in der Datei angefügt werden und nicht überschrieben werden.
MfG