La serialización

3084 vistas

Java permite guardar el estado de un objeto en un determinado instante del flujo de la aplicación. Generalmente se guardará en un fichero. La principal ventaja de la serialización es de estar completamente integrada en el API de Java y, por lo tanto, no necesitar ningún código suplementario.

Crear una clase serializable:
Bastará con que la clase implemente la interface java.io.Serializable.



java
  1. public class Writeable implements java.io.Serializable



Nota: todas la variables de la clase tiene que ser objetos serializables o tipos primitivos.

Serialización de un objeto:



java
  1. try {
  2.   ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("miFichero.sav"));
  3.   out.writeObject(miObjeto1);
  4.   out.writeObject(miObjeto2);
  5.   out.close();
  6. } catch( IOException e ) {
  7. }



Deserializar un objeto:



java
  1. try {
  2.   ObjectInputStream in = new ObjectInputStream(new FileInputStream("miFichero.sav"));
  3.   MiObjeto1 miObjeto1 = (MiObjeto1)in.readObject();
  4.   MiObjeto2 miObjeto2 = (MiObjeto2)in.readObject();
  5.   in.close();
  6. } catch( ClassNotFoundException e1 ) {
  7. } catch( IOException e2 ) {
  8. }



Nota: es posible no guardar algunos atributos de la clase usando la palabra clave "transient".