ObjectOutputStream - mehr als nur ein Objekt ausgeben

  • Themenstarter Themenstarter HansWurscht45
  • Beginndatum Beginndatum
H

HansWurscht45

Gast
Servus,

Ich habda n kleinen Problem.

Und zwar will ich ein Array von Objekten abspeichern. Dazu hab ich den ObjectOutputStream benutzt.
Des Problem is aber, dass der immer nur ein Objekt speichert. Will ich ein zweites OBjekt in die selbe Datei speichern wird das schon vorhandene Objekt überschrieben.

So sieht der Code bisher aus:

Java:
public void serialize(File file, Ausgabe object) //Die Objecte die gespeichert werden sollen sind Objeke der Klasse Ausgabe
    {
        try {
            ObjectOutputStream os = new ObjectOutputStream(new FileOutputStream(file));
            os.writeObject(object); 
            os.close();
        }
        catch (FileNotFoundException e1) {
            e1.printStackTrace();
        }
        catch (IOException e1) {
            e1.printStackTrace();
        }
    }

Wenn ich die Methode mehrmal hintereinaner mit gleichem File, aber anderem Objekt aufrufe, kommt es zu dem obrigen Problem.

Ich hoffe ihr könnt mir helfen.

Grüße
 
os.writeObject(object);
öfter aufrufen für jedes objekt 1 mal. Sonst überschreibst du das vorige object jedes mal
 
allgemein für Txt oder Bytes geht new FileOutputStream(file,append=true),
bei ObjectOutputStream ist dies aber nicht zu empfehlen bzw. funktioniert schlicht nicht,

stell dir eine solche Datei wie ein PDF-Dokument, ein Image oder sonst was kompliziertes vor, das ist von vorne bis hinten durchstrukturiert, da kann man nix einfach so hinzufügen,
du musst die Objekte aus der alten Datei einlesen, falls du sie nicht im Programm vorliegen hast, und alle gemeinsam speichern,

---

es bietet sich generell an, immer nur genau ein Objekt in eine solche Datei zu schreiben,
der scheinbare Widerspruch löst sich auf, indem man mehrere zu speichernde Objekte eben zusammen als ein Array oder eine Liste speichert
 

Zurück
Oben