Auf Thema antworten

Du müsstest uns einmal genau den Code zeigen, den Du verwendest. Wie schreibst / liest du die Adressen genau?


Vermutlich hängst Du einfach die neue Adresse hinten an die Datei an, also du öffnest einen ObjectOutputStream auf einem FileOutputStream mit append=true?


Das Problem dabei wäre, dass die Erstellung des ObjectOutputStreams direkt einen Header schreibt:

https://docs.oracle.com/javase/7/docs/api/java/io/ObjectOutputStream.html#ObjectOutputStream(java.io.OutputStream):

"This constructor writes the serialization stream header to the underlying stream;"


Was Du machen könntest:

a) Entweder immer das ganze Array schreiben, d.h. den Inhalt immer komplett überschreiben.


b) Deutlich komplexer: Du schreibst Deine eigene Serialisierung. Könnte auch auf ObjectStream basieren - brauchst dann "nur" eine Variante, die den Header beim Anhängen nicht schreibt.


Edit: BTW: Was mich irritiert ist, dass du keinen Fehler angibst. Evtl. hast Du try/catch Konstrukte mit leerem catch oder so? Wenn das beschriebene Szenario Dein Szenario ist, dann solltest Du eine StreamCorruptedException bekommen haben. Aber denkbar ist natürlich auch, dass Du das Array als Array geschrieben hast und du nur dieses liest, d.h. Du schreibst ein Array mit n Elementen, dann hängst du einzelne Elemente an ... beim Lesen wird aber nur das Array mit den n Elementen gelesen ....



Oben