please ayuda es muy basica
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??
ya intente lo siguiente pero no dio resultado:
Re: please ayuda (es bastante basica un minutito)
Enviado por x el dÃa 18 de marzo de 2006
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...
}
Responder
Re: Re: please ayuda (es bastante basica un minutito)
Enviado por matiasb el dÃa 18 de marzo de 2006
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, ya que lei libros donde dice q la clase a serializar debe tener los metodos para ello, bla, bla, bla y no me sale...
estoy desesperando con este tema
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??
ya intente lo siguiente pero no dio resultado:
Re: please ayuda (es bastante basica un minutito)
Enviado por x el dÃa 18 de marzo de 2006
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...
}
Responder
Re: Re: please ayuda (es bastante basica un minutito)
Enviado por matiasb el dÃa 18 de marzo de 2006
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, ya que lei libros donde dice q la clase a serializar debe tener los metodos para ello, bla, bla, bla y no me sale...
estoy desesperando con este tema
Gracias
