Moien
Was meinst du mit Merkwürdigkeiten beim Serialisieren. Kanns
passieren, dass ich die Daten dann nich mehr Deserialisieren
kann?
Die serialierten Sachen lassen sich nur laden wenn die alten Klassen noch verfügbar sind. D.h. einmal neu compilieren und das Zeug ist unlesbar (es sei den man benutzt ClassIDs. Und selbst dann darf sich nix grundlegendes an der Klasse ändern).
Dann schreibt man nicht einzelne Objekte sondern immer komplette Graphen (deshalb werden manche kleinen einfachen Objekte verdammt gross). Ändert man nach dem schreiben des Graphen eines der Objekte im Graph und schreib dieses Objekt dann nochmal in den Stream so bekommt man den alten Stand beim lesen zurück. Sehr nervtötend. Deshalb gibts die reset-Methoden am Objectstream.
OO-Streams sind klasse wenn man komplexe Objekte über Netzwerk rumschieben muss. Aber interessant werden OO-Streams erst mit RMI. Und RMI hat nochmal ganz einigene Probleme. Zum abspeichern und später laden würde ich andere Sachen nehmen (java.beans.XMLEncoder).
Ich kann dir ja mal kurz mein Vorhaben erklären. Und zwar muss
ich eine Art FileSystem programmieren. Das ganz auf Grundlage
einer Containerdatei. Jetzt habe ich mir halt eine verkettete
Liste genommen, eine ArrayList, die alles wichtige aufnimmt
(Dateiname, Positionen in der Datei usw.). Und jetzt möchte
ich halt die verkettete Liste mit den einzelnen
ArrayList-Objekten in die Datei schreiben und zwar erst nach
den ersten 512 Byte. Später soll dann eben die Liste mit den
Objekten wieder rekunstruierbar sein, wenn ich die Datei
erneut lade.
Nimm den XML-Encoder oder das wird sehr, sehr versionsabhängig. Eine neue Variable in der Containerklasse und alle alten Dateisysteme sind futsch.
cu