La 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 dicho objeto manteniendo el valor de sus
variables. Esto permite guardar un objeto en un archivo o mandarlo por la red.
Para que una clase pueda utilizar la serialización. debe implementar la interface Serializable.
que no define ningún método. Casi todas las clases estándar de Java son seríalizables. La clase
MiClase se podría señalizar declarándola como:
public class MiClase implements Serializable {
}
Para escribir y leer objetos se utilizan las clases ObjectlnputStream y ObjectOutputStream.
que cuentan con los métodos wríteObject() y reaclObject(). Por ejemplo:
ObjectOutputStream objout = new
ObjectOutputStream(
new
FileOutputStream("archivo.x"));
String s = new StringC'Me van a
serializar");
objout.writeObject(s);
ObjectlnputStream objin = new
ObjectlnputStream(new FilelnputStream("archivo.x"));
String s2 = (String)objin.readobject();
Es importante tener en cuenta que readObject() devuelve un Object sobre el que se deberá
hacer un casting para que el objeto sea útil. La reconstrucción necesita que el archivo *.class esté al
alcance del programa (como mínimo para hacer este casting).
Al serializar un objeto, automáticamente se señalizan todas sus variables y objetos miembro.
A su vez se señalizan los que estos objetos miembro puedan tener (todos deben ser serializables).
También se reconstruyen de igual manera. Si se señaliza un lector que contiene varios Strlngs.
todo ello se convierte en una serie de bytes. Al recuperarlo la reconstrucción deja todo en el lugar en
que se guardó.
Si dos objetos contienen una referencia a otro, éste 110 se duplica si se escriben o leen ambos
del mismo stream. Es decir, si el mismo String esmviera contenido dos veces en el Vector, sólo se
guardaría una vez y al recuperarlo sólo se crearía un objeto con dos referencias contenidas en el
vector.
No hay comentarios:
Publicar un comentario