Serialización

Páginas: 5 (1136 palabras) Publicado: 4 de octubre de 2015
Ficha de Estudio: Serialización

Serialización
Abstract:

Grabación de objetos en medios externos: el proceso de serialización en Java. La interface
Serializable. Concepto de interface vacía. Clases de java.io para grabar y recuperar objetos desde
un medio externo.

1.) Grabación y recuperación de objetos desde archivos externos en Java: Serialización.
El lenguaje Java dispone de un mecanismosimple de implementar, que permite grabar o recuperar
objetos complejos desde dispositivos externos (tales como archivos) invocando a un solo método (y
eventualmente capturando excepciones), sin importar la complejidad interna del objeto grabado. Ese
mecanismo se conoce como Serialización.
Para implementar la serialización, el paquete java.io brinda un par de clases ObjectInputStream yObjectOutputStream, las cuales permiten leer y grabar objetos completos, respectivamente, sin que el
programador deba preocuparse de como "serializar" ese objeto (o sea, el programador no debe
preocuparse de cómo se convierte el objeto en una serie de bytes que se envían o se toman del
dispositivo externo). Los metodos readObject() (de la clase ObjectInputStream) y writeObject() (de
ObjectOutputStream) hacenla lectura y la grabación en una sola instruccion (de alto nivel) del
programador.
Esas dos clases son de alto nivel, y se conectan con otras dos clases de bajo nivel: FileInputStream y
FileOutputStream. Ambas clases trabajan leyendo y enviando bytes desde y hacia el dispositivo.
El esquema gráfico que sigue, muestra la relación conceptual entre estas clases:

ObjectInputStream

FileInputStream+ readObject()

Aplicación
(en memoria)

alto
nivel

ObjectOutputStream
+ writeObject()

bajo
nivel

Archivo
serializado
(en disco)

FileOutputStream

Ing. Frittelli - Ing. Steffolani – Ing. Bett – Ing. Serrano – Ing. Teicher – Ing. Fernández -

1

Ficha de Estudio: Serialización

La forma de crear objetos para lograr la comunicación se muestra en el siguiente ejemplo. Suponemos
que lo que sedesea grabar es un objeto completo de la clase SimpleList, que se toma como parámetro,
pero el ejemplo sería el mismo si la clase del objeto a grabar fuera cualquier otra (luego veremos qué
requisitos debe cumplir esa otra clase) Notar que es práctica común crear primero un objeto de la clase
File a modo de “file descriptor”, y luego crear el resto de los objetos:

Streams de salida(serialización):
public void grabar (SimpleList sl) throws FileNotFoundException, IOException
{
// creación de objetos para gestión de streams de salida
File f = new File(“lista.dat”) ;
FileOutputStream out = new FileOutputStream(f);
ObjectOutputStream ofile = new ObjectOutputStream(out);
// grabación de lista completa en el archivo serializado
ofile.writeObject( sl );
// cierre de los flujos de salidaofile.flush();
out.close();
}

Note que el uso de los métodos de estas clases de salida puede lanzar excepciones de la familia de
IOException, y que esas excepciones son chequeadas. Por lo tanto, el método grabar() aquí mostrado
debe declarar en su cabecera las posibles excepciones disparadas por los constructores, por
writeObject() o por los métodos de cierre, o bien usar try – catch() paracapturarlas.

Streams de entrada (serialización):
public SimpleList leer() throws FileNotFoundException, IOException, ClassNotFoundException
{
// creación de objetos para gestión de streams de entrada
File f = new File( “lista.dat” );
FileInputStream in = new FileInputStream( f );
ObjectInputStream ifile = new ObjectInputStream ( in );
// lectura del objeto que estaba en el archivo
SimpleList sl =(SimpleList) ifile.readObject();
//cierre de los flujos de entrada
ifile.close();
in.close();
//retorno del objeto leído
return sl;
}

También aquí los métodos usados pueden lanzar excepciones chequeadas y deben ser declaradas en la
cabecera del método leer() o ser capturadas con try - catch(). El método usado para leer un objeto que
estaba grabado en el archivo serializado, es readObject() (de la clase...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Serializacion en java
  • ArrayList y serialización
  • Serializacion
  • Serializacion
  • Serializacion
  • Informe acerca de serializacion de objetos en java

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS