Dołączanie do obiektu ObjectOutputStream

Czy nie można dołączyć doObjectOutputStream?

Próbuję dołączyć do listy obiektów. Poniższy fragment to funkcja wywoływana za każdym razem, gdy zadanie jest zakończone.

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

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

Ale kiedy próbuję to przeczytać, otrzymuję tylko pierwszy w pliku. Potem dostajęjava.io.StreamCorruptedException.

Do czytania używam

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() );
}

Nie wiem, ile obiektów będzie obecnych, więc czytam, gdy nie ma wyjątków. Z tego, co twierdzi Google, nie jest to możliwe. Zastanawiałem się, czy ktoś zna sposób?

questionAnswers(5)

yourAnswerToTheQuestion