please ayuda (es bastante basica un minutito)
Hola, mi duda que es como deserializar muchos objetos, ya que con lo que hice siempre deserializa al primer objeto gurdado en el archivo.
//este es mi metodo para deserializar
public clientes deserializar(String archivo) throws IOException, ClassNotFoundException{
FileInputStream arch = new FileInputStream(archivo);
ObjectInputStream entrada = new ObjectInputStream(arch);
return ((clientes)entrada.readObject());
}
//... y lo llamo asi:
clientes cliente=new clientes(0,"",0);
cliente = cliente.deserializar(archivo);
//pasa q por mas que lo vuelva a llamar 5 veces para luego mostrarlo siempre me carga al primer objeto del archivo y estaria mostrando siempre al mismo objeto,
y yo quiero mostrar a todos... Como hago??
gracias
//este es mi metodo para deserializar
public clientes deserializar(String archivo) throws IOException, ClassNotFoundException{
FileInputStream arch = new FileInputStream(archivo);
ObjectInputStream entrada = new ObjectInputStream(arch);
return ((clientes)entrada.readObject());
}
//... y lo llamo asi:
clientes cliente=new clientes(0,"",0);
cliente = cliente.deserializar(archivo);
//pasa q por mas que lo vuelva a llamar 5 veces para luego mostrarlo siempre me carga al primer objeto del archivo y estaria mostrando siempre al mismo objeto,
y yo quiero mostrar a todos... Como hago??
gracias
para leer todos tienes que hacer un ciclo hasta q no puedas leer mas, algo asi:
Object obj = null;
while ( ( obj = entrada.readObject() ) != null )
{
clientes c = (clientes) obj;
// lo q quieras hacer luego...
}
Object obj = null;
while ( ( obj = entrada.readObject() ) != null )
{
clientes c = (clientes) obj;
// lo q quieras hacer luego...
}
mira si hago eso me tira un StreamCorruptedException
y si capturo la exception de esta forma:
while ( sigo ){
try{
obj =entrada.readObject();
// lo que quiero hacer luego
}catch(StreamCorruptedException eo){sigo=false;}
}
igual sigo leyendo solo al primer objeto q serialize, ya que entra una sola vez al try...
Por favor sigo escuchando consejos... Gracias igual
y si capturo la exception de esta forma:
while ( sigo ){
try{
obj =entrada.readObject();
// lo que quiero hacer luego
}catch(StreamCorruptedException eo){sigo=false;}
}
igual sigo leyendo solo al primer objeto q serialize, ya que entra una sola vez al try...
Por favor sigo escuchando consejos... Gracias igual
