Programación General > Java

 Escribir un Objeto al final de un fichero

<< < (2/2)

turicuen:
Gracias lo probare!!

turicuen:
No me escribe el objeto. Cuando lo añado no me lo escribe!!. Si hago writeUn



--- Código: Text --- public void anhadeFichero ()    {        try {                        MiObjectOutputStream oos = new MiObjectOutputStream( new FileOutputStream("fichero.txt",true));             Persona p = new Persona("Pepe","....",25);//X ejemplo             oos.writeUnshared(p);            oos.close();            System.out.println("se ha escrito correctamente");        } catch (Exception e){                e.printStackTrace();           }    } No me da ningun tipo de error, y me sale que se ha escrito correctamente, pero luego cuando leo el archivo, no aparece, estan solamente los archivos con los que lo cree.

chuidiang:
Hola:

¿El fichero aumenta de tamaño en la segunda ejecución?. Ten en cuenta que al ejecutar el programa dos veces, estás escribiendo dos veces las mismas personas, por lo que una misma persona aparece "teóricamente" dos veces en el fichero. ¿Es posible que el problema esté en el programa que lee, ya que lee dos veces la misma clase Persona?

Se bueno.

manix:
hola!!

precisamente presta atencion a lo que dice chuidiang, he probado el ejemplo completo y corre perfecto.

saludos

turicuen:
Al archivo si me añade el objeto, pero me sigue insertando una cabezara en el archivo cada vez que inserto un objeto. Y el codigo es el que tengo puesto mas arriba.

La unica forma con la que no me falla y me lo intruduce bien, es haciendo un reset antes de cada escritura.


--- Código: Text ---#  public void anhadeFichero ()     {         try {                         MiObjectOutputStream oos = new MiObjectOutputStream( new FileOutputStream("fichero.txt",true));              Persona p = new Persona("Pepe","....",25);//X ejemplo              oos.reset();              oos.writeUnshared(p);             oos.close();             System.out.println("se ha escrito correctamente");         } catch (Exception e){                 e.printStackTrace();           
Lo unico que no me parece demasiado correcto dejarlo asi, alguna solucion?

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa