Anfügen an ein ObjectOutputStream

Ist es nicht möglich, zum Anhängen an ein ObjectOutputStream?

Ich versuche zum Anhängen an eine Liste von Objekten. Folgende Code ist eine Funktion, die aufgerufen wird, wenn ein Auftrag abgeschlossen ist.

FileOutputStream fos = new FileOutputStream
           (preferences.getAppDataLocation() + "history" , true);
ObjectOutputStream out = new ObjectOutputStream(fos);

out.writeObject( new Stuff(stuff) );
out.close();

Aber wenn ich versuche, es zu Lesen, bekomme ich nur die erste in der Datei.
Dann bekomme ich java.io.StreamCorruptedException.

Zu Lesen, ich bin mit

FileInputStream fis = new FileInputStream
        ( preferences.getAppDataLocation() + "history");
ObjectInputStream in = new ObjectInputStream(fis);    

try{
    while(true)
        history.add((Stuff) in.readObject());
}catch( Exception e ) { 
    System.out.println( e.toString() );
}

Ich weiß nicht, wie viele Objekte vorhanden sein, so lese ich, während es gibt keine Ausnahmen. Von dem, was Google sagt, das ist nicht möglich. Ich Frage mich, ob jemand eine Möglichkeit kennt?

Bekommen Sie überhaupt etwas aus dem stream, oder ist es eine Ausnahme das erste mal in der Schleife?
es liest das erste Objekt, das ich gespeichert, dann bekomme ich die exception.
Im code oben, ich bin nur zu sehen, ein Objekt in die Datei geschrieben, also nur eine würde gelesen werden, richtig?
erste Schnipsel ist eine Funktion, die mehrfach aufgerufen wird, wenn ein Auftrag abgeschlossen ist. aber ich kann nur Lesen, die erste, die ich schrieb.
Ihr code hier schreibt nur 1 Objekt auf den stream, ist es etwas, was nicht gezeigt wird, schreibt mehr als 1 Objekt zu streamen ?

InformationsquelleAutor Hamza Yerlikaya | 2009-07-28

Schreibe einen Kommentar