Serializacion de objetos y desarealizacion

Iniciado por turion, 2 Abril 2010, 21:13 PM

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

turion

Hola muy buenas, he estado viendo como se hace y al verdad aparte de que no lo he entendido muy bien que hace pero bueno, aparte de ello lo tengo que utilizar en un programa que estamos haciendo (yo ya lo tengo terminado solo queda eso serializar)


El programa consiste en la gestion de un hotel y ahora me han pedido que pueda guardar los datos de los clientes y sus habitaciones mediante la serializacion.

Alguien me podria explicar como se podria hacer no quiero (por favor) que me pongan un monton de codigo ya hecho solo para copiar y pegar... si pudiera ser me guataria aprender como se hace.


Gracias por todo.

Leyer

#1
Es simple, primero que nada los objetos que quieres serializar tiene que impementar la intefaz Serializable, luego para creas un FileOutputStream indicandole la salida, luego ceas un ObjectOutputStream pasandole la instancia del  FileOutputStream ,luego llamas al metodo writeObject(); del ObjectOutputStream pasandole el objeto que quieres serializar en el archivo y finalizas

salidaObj.flush();
salidaObj.close();


Luego para pbtener los objetos serializados abres un FileInputStream con el nombre del archivos serializado,y inicias un ObjectInputStream pasandole la instancia del FileInputStream, luego obtienes los objetos llamando el metodo
Código (java) [Seleccionar]
InObj.readObject(); del ObjectInputStream pero para obtenerlos como los objetos que serializaste es necesario hacer un Casting (Client) InObj.readObject();, y ya con esto habras finalizado.

Espero me entiendas
Un Saludo.

turion

Gracias voy a probarlo....... a ver que tal

kasiko

solo una opinion, cuando se habla de "gestion" de algun tipo... lo mejor es usar base de datos... ahora si te lo exigen... me callo.  :-X
Nos vemos...


turion

Cita de: kasiko en  9 Abril 2010, 00:49 AM
solo una opinion, cuando se habla de "gestion" de algun tipo... lo mejor es usar base de datos... ahora si te lo exigen... me callo.  :-X


Si si me lo exigian.... era una practica por cierto ya me salio¡¡¡ ajaj

por si le sirve a alguien:

Lo unico que tienes que hacer es implementar (implements) todas las clases que vallas a serializar

y 2º poner la serializacion de objetos que a mi me quedo de la siguiente forma:





    public void leer()throws IOException, ClassNotFoundException
    {
   
   JOptionPane.showMessageDialog(dialog,"leyendo","Informacion",JOptionPane.INFORMATION_MESSAGE);
               try{ 
               
               ObjectInputStream in = new ObjectInputStream (new FileInputStream("datos.out"));
             
               for(Habitacion h: habitaciones){
                 h.setReserva((Reserva)in.readObject());
               }
               in.close();
                 }
       catch (IOException e)
       {
        JOptionPane.showMessageDialog(dialog,"Error de lectura","Informacion",JOptionPane.INFORMATION_MESSAGE);
       }

   
    }
 
   
   
   
   
   public void guardar()
     {
        JOptionPane.showMessageDialog(dialog,"Estamos Guardando...","Informacion",JOptionPane.INFORMATION_MESSAGE);
   
   try{
        ObjectOutputStream salida= new ObjectOutputStream(new FileOutputStream("datos.out"));
       
       

          for(Habitacion h:habitaciones){
          //        if(h.getReserva() != null)
                    salida.writeObject(h.getReserva());
                   
                }     
                   
             
             salida.close();
    }
       catch (IOException e)
       {
         JOptionPane.showMessageDialog(dialog,"Error al guardar " + e.getMessage(),"Informacion",JOptionPane.INFORMATION_MESSAGE);
       }

  }

   
}