La serialización de objetos permite convertir un objeto en una secuencia de bytes que puede guardarse en un archivo o enviarse por la red. Esto permite reconstruir el objeto y recuperar el valor de sus variables. Para que un objeto sea serializable, su clase debe implementar la interfaz java.io.Serializable. Se usan ObjectOutputStream y ObjectInputStream para escribir y leer objetos serializados de archivos respectivamente.
2. Serialización
Es un proceso por el que un objeto
cualquiera se puede convertir en una
secuencia de bytes con la que más tarde se
podrá reconstruir el valor de sus variables.
Esto permite guardar un objeto en un
archivo o mandarlo por la red.
Es posible deshacer la serialización
volviendo a crear el objeto mediante la
lectura de su estado a partir del
almacenamiento o de la red.
3. Serialización de Objetos
O Para que un objeto puedo ser
almacenado es necesario que la clase a
la que pertenece sea serializable.
O Esta característica la poseen todas
aquellas clases que implementan la
interfaz java.io.Serializable
4. O El siguiente ejemplo corresponde a la clase
Persona , cuyos objetos van a encapsular nombre
y edad de una persona. Estos objetos podrán ser
guardados porque la clase persona implementa la
interfaz serializable.
5. Creación de un objeto
ObjectOutputStream
O La escritura de objetos en disco se hace a
través de ObjectOutputStream.
O Para crear un objeto de esta clase es
necesario disponer del FileOutputStream
asociado al fichero donde se va a realizar la
escritura.
O Una vez creado el objeto la clase dispone del
método WriteObject(Object obj) para realizar
la escritura del objeto en el disco.
6. O El siguiente programa almacena en un fichero
un objeto de la clase persona definida
anteriormente
7. Lectura de objetos de un
fichero
O Para leer objetos de un fichero que han
almacenado mediante el
ObjectOutputStream se deberá utilizar
un objeto ObjectInputStream.
8. Creación de un objeto
ObjectInputStream
O La clase ObjectInputStream dispone de
un método Object readObject() para
devolver los objetos almacenados en el
fichero.
O El constructor de esta clase requiere un
objeto FileInputStream asociado al
fichero de sonde será leído el objeto.
9. O El siguiente ejemplo recupera el objeto Persona
almacenado en el fichero “datos.obj”
anteriormente.
10. Deserialización de objetos
O Cuando se recupera el objeto mediante la llamada
a readObject() ,se produce la deserialización que
básicamente consiste en la reconstrucción del
objeto de este a partir de la información
recuperada.
O Durante este proceso , los datos miembros no
serializables serán inicializados con el constructor
por defecto de su clase mientras que los
serializados serán restaurados con los valores
almacenados
11. Pregunta
O Una ves que hayamos serializado un
objeto y guardado en un archivo, y si
después en la programación agregamos
uno o varios método, podremos leer el
objeto que habíamos guardado?? si, no
¿por qué?