[Ayuda] Guardar mas de un Objeto dentro de un Archivo Serializable

Iniciado por alejandrosevenfold, 13 Abril 2013, 19:19 PM

0 Miembros y 1 Visitante están viendo este tema.

alejandrosevenfold

Buen día, lamento molestar con este problema pero he venido lidiando
con el y no se como solucionarlo... sucede que necesito guardar una serie
de objetos dentro de un archivo externo y estoy utilizando el método
serializable para realizarlo, todo corre perfectamente pero el problema que tengo
es que no hace mas que guardar UN solo objeto cuando la idea principal
es que guarde cuanta cantidad de objetos tenga para luego ser leidos

el codigo que tengo de la clase Serializador es este:

import java.io.*;

public class Serializador{

// Escribe un objecto en un archivo
private ObjectOutputStream escritorArchivo;

// Lee un objecto que este guardado en un archivo
private ObjectInputStream lectorArchivo;

public void escribirArchivo(Object objeto){
try{
escritorArchivo = new ObjectOutputStream(new FileOutputStream("objeto.mio"));
escritorArchivo.writeObject(objeto);
} catch(FileNotFoundException fnfex){
fnfex.printStackTrace();
} catch(IOException ioex){
ioex.printStackTrace();
}
}

public Object leerArchivo(String rutaArchivo){
Object lectura = null;
try{
lectorArchivo = new ObjectInputStream(new FileInputStream("objeto.mio"));
lectura = lectorArchivo.readObject();
} catch(FileNotFoundException fnfex){
fnfex.printStackTrace();
} catch(IOException ioex){
ioex.printStackTrace();
} catch(ClassNotFoundException cnfex){
cnfex.printStackTrace();
}
return lectura;
}

}


la clase serializada en la cual quiero trabajar no es mas que una clase
comun y corriente con 4 datos, su respectivo Constructor y por supuesto
sus getters y setters. Para Ingresar Datos Realizo lo siguiente (por supuesto
antes declaro un Objeto de Tipo Guitarra llamado ListaGui
):

ListaGui = new Guitarra (marc, mod , col ,prec);
ser.escribirArchivo(ListaGui);


y para obtenerlos esto:

ListaGui = (Guitarra) ser.leerArchivo("objeto.mio");


tengo que realizar algun cambio dentro del codigo
para que en lugar de sobreescribir el mismo objeto , me permita escribir mas
de un objeto dentro del archivo?
Gracias de Antemano

Chuidiang

En el new de FileOutputStream, añade un segundo parámetro boolean true para que sea "añadir al fichero", en vez de crearlo desde cero http://docs.oracle.com/javase/1.5.0/docs/api/java/io/FileOutputStream.html

Se bueno.