FileOutputStream öffnet eine neue Datei und löscht den Inhalt bei jeder Erstellung
Ich beschäftige mich mit Serialisierung und Deserialisierung in Dateien. Darüber hinaus bin ich Stapel über die VerwendungFileOutputStream
mitObjectOutputStream
. Das Problem ist, dass ich eine Server / Client-Chat-Anwendung habe. Wenn ein Client verbunden ist, muss der Server überprüfen, ob sich der verbundene Client bereits registriert hat. Wenn also ein Client mit dem Server verbunden ist, erstellt der Server einen Ausgabestream wie
FileOutputStream fos = new FileOutputStream("src\\example\\mainList.txt");
um eine verknüpfte Liste zu erhalten, um zu überprüfen, ob diese Liste dieses Objekt enthält oder nicht. Aber,FileOutputStream
Erstellt immer eine neue Datei ohne Inhalt. Ich weiß, ob ich einen "wahren" Wert als zweiten Parameter zum Anhängen der Datei übergebe, aber diese TXT-Datei sollte nur ein Objekt enthalten, das eine verknüpfte Liste ist. Daher möchte ich nicht in jedem Prozess eine Liste anhängen. Wie gehe ich mit Problemen um? Ich will nur nur
Ich hoffe, dass ich Ihnen über mein Problem klar war und ich werde für jede Antwort dankbar sein. Also trotzdem danke
EDIT: Hier ist ein einfaches Beispiel für das, was ich versuche zu sagen.
public class PersonTest2 {
public static void main(String[] args) throws IOException, ClassNotFoundException {
LinkedList<Person> list = new LinkedList<Person>();
Person per = new Person("John","Thompson",22);
Person per2 = new Person("Suzie","Cash",23);
Person per3 = new Person("Peter","Jackson",24);
Person per4 = new Person("Michael","Coch",25);
list.add(per);
list.add(per2);
list.add(per3);
list.add(per4);
FileOutputStream fos = new FileOutputStream("person.txt");
BufferedReader br = new BufferedReader(new FileReader("person.txt"));
if (br.readLine() == null ) {
System.out.println("No errors, and file is empty");
}
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(list);
fos.close();
FileInputStream fis = new FileInputStream("person.txt");
ObjectInputStream ois = new ObjectInputStream(fis);
LinkedList<Person> list2;
list2 = (LinkedList) ois.readObject();
for (Iterator<Person> itr = list2.iterator(); itr.hasNext();) {
Person rper = itr.next();
System.out.println(rper.name + " " + rper.last_name + " " + rper.age);
}
}
}
Jedes Mal, wenn ich diesen Code ausführe, öffnet FileOutputStream eine neue Datei. Allerdings, wenn ich benutzetrue
Für den zweiten Parameter werden die verknüpften Listen angehängt.