deserializacion

matiasb
16 de Marzo del 2006
Hola yo tengo el metodo "deserializar" en la clase "clientes" q justamente sirve para deserializar objetos de tipo clientes q antes habia serializado con el metodo "serializar" q es muy analogo:
cuando invoco este metodo "deserializar", tira un error java.lang.NullPointerException, si alguien me puede indicar como solucionar este problema le agradeceria mucho. Estoy investigando por mi cuenta sobre la serializacion de objetos por lo que me cree este simple ejercicio como para probarlo, lo que hice es agregar un cliente, luego serializarlo e inmediatamente deserializarlo para intentar mostrarlo por pantalla, tambien probe hacer un close del File luego de serializar pero no dio resultado.
Solucionado este problema no sabria como deserializar mas de un objeto (suponiendo q haya guardado n objetos y quiero deserializarlos a todos). para deserializar un objeto hice lo siguiente:
clientes cliente = null;
cliente.deserializar("archivo.dat")
pero no tengo ningun metodo como para ir avanzando en el archivo, me imagino q los hay si me los pueden nombrar muchas gracias.

El objeto a serializar es de tipo cliente y la clase cliente tiene los metodos serializar y desarializar q son los siguientes:

public clientes deserializar(String archivo) throws IOException, ClassNotFoundException{
FileInputStream arch = new FileInputStream(archivo);
ObjectInputStream entrada = new ObjectInputStream(arch);
return ((clientes)entrada.readObject());
}

chuidiang
16 de Marzo del 2006
Hola:

Te da el nullpointerexception porque cliente es null y estas intentando llamar a un metodo de el. Prueba a hacer el metodo estatico y que devuelva un Cliente. Algo como esto

class Cliente
{
...
public static Cliente deserializa (String fichero)
{
... aqui el código tal cual lo tienes
}
}

Luego llámalo así

Cliente c = Cliente.deserializa("fichero");

Se bueno