lunes, 29 de junio de 2015

SERIALIZACIÓN DE OBJETOS EN JAVA

SERIALIZACIÓN

La serialización de un objeto se utiliza para obtener una secuencia de bytes que represente el estado de un objeto, es decir el estado de sus campos. Podemos decir que serializar un objeto consiste en guardad elestado de sus campos.
Si el objeto a serializar tiene campos que a su vez son objetos, habrá que serializarlos primero, también se utiliza la serialización para poder reconstruir el objeto serializado. 

INTERFAZ SERIALIZABLE

Un objeto serializable es un objeto que se puede convertir en una secuencia de bytes. Para que un objeto pueda ser serializable, debe implementar la interfaz java.io.Serializable. Esta interfaz no implemeta ningún método, se usa para aquellas clases cuyas instancias
pueden ser convertidas a secuencias de bytes y tambieén ser reconstruídas. 


Flujos basados en bytes


Para la serialización de objetos:
„Clase ObjectOuputStream
Método - writeObject()
Ejemplo: flujoSalida.writeObjetct (objetoClase);
„ 
Para la deserialización de objetos:
Clase ObjectInputStream
Método - readObject()
Ejemplo: objetoClase = (Clase) flujoEntrada.readObject();

EJEMPLO

Consideremos el siguiente ejemplo, crearemos tres clases: Paciente, SerializarEscribir y SerializarLeer;

La clase Paciente va a implementar la interfaz Serializable:





En la clase SerializarEscribir lo que vamos a hacer es serializar un objeto de tipo ArrayList<Paciente> y lo vamos a escribir en un archivo llamado informacion.dat, creamos una objeto de la clase ObjectOuputStream ya que dentro de esta clase tenemos el método writeObject() que sirve para serializar el objeto.

Una vez que hayamos serializado el objeto y guadado, se crea el archivo informacion.dat el cual contiene el objeto listapacientes serializado


En la clase SerializarLeer lo que vamos a hacer es deserializar un objeto de tipo ArrayList<Paciente> que esta guardado en el archivo llamado informacion.dat, creamos una objeto de la clase ObjectInputStream ya que dentro de esta clase tenemos el método readObject() que sirve para deserializar el objeto, y luego lo guardamos en un nuevo ojbeto de tipo ArrayList<Paciente>.




Nuestra salida al mandar a imprimir el objeto lista pacientes es el siguiente:


Bibliografía



No hay comentarios:

Publicar un comentario