¿No es posible agregar a un ObjectOutputStream
?Anexando a un ObjectOutputStream
Estoy tratando de anexar a una lista de objetos. El siguiente fragmento es una función que se invoca cada vez que se finaliza un trabajo.
FileOutputStream fos = new FileOutputStream
(preferences.getAppDataLocation() + "history" , true);
ObjectOutputStream out = new ObjectOutputStream(fos);
out.writeObject(new Stuff(stuff));
out.close();
Pero cuando intento leerlo solo obtengo el primero en el archivo. Luego recibo java.io.StreamCorruptedException
.
Para leer estoy usando
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());
}
No sé cuántos objetos estarán presentes por lo que estoy leyendo, mientras que no hay excepciones. Por lo que Google dice, esto no es posible. Me preguntaba si alguien sabe una forma de hacerlo.
¿Obtiene algo de la transmisión o produce una excepción la primera vez en el ciclo? – skaffman
lee el primer objeto que guardé, luego recibo una excepción. –
En el código anterior, solo veo un objeto escrito en el archivo, por lo que solo se leerá uno, ¿no? – aperkins