Showing posts with label Serializacion. Show all posts
Showing posts with label Serializacion. Show all posts

Sunday, March 29, 2009

Serializacion & Deserializaciòn de Objetos

En esta oportunidad muestro el manejo de 'Serializacion & Deserializacion de Objetos en Java'. Esto lo elabore en base de Objetos Stream, como sus dos mètodos famosos: 'writeObject' y 'readObject'. Los dos ejemplos que se muestran, realizan lo mismo impreso en consola, la diferencia que es que en el primer ejemplo el seteo de objetos esta en modo 'HardCode' y en el segundo utilizo un bean 'BeanSerializable' para la transmisiòn. En total los dos ejemplos cuantan con tres clases:

BeanSerializable.java

import java.io.Serializable;
import java.util.Date;

/**
* En clase es utilizada para el setedo de datos para su posterior serializacion.
*
* @version 1.2 - 29 Marzo 2009.
* @author Ricardo Guerra.
*/
public class BeanSerializable implements Serializable{

private static final long serialVersionUID = -7905579217165381885L;

private Integer codigo;
private String nombre;
private String apellido;
private Date fecha;


public static long getSerialVersionUID() {
return serialVersionUID;
}

public Integer getCodigo() {
return codigo;
}

public void setCodigo(Integer codigo) {
this.codigo = codigo;
}

public String getNombre() {
return nombre;
}

public void setNombre(String nombre) {
this.nombre = nombre;
}

public String getApellido() {
return apellido;
}

public void setApellido(String apellido) {
this.apellido = apellido;
}

public Date getFecha() {
return fecha;
}

public void setFecha(Date fecha) {
this.fecha = fecha;
}
}

Serializando_Deserealizando_Objetos_01.java

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Date;

/**
* En esta clase estoy mostrando el manejo de Serializacion y Deserealizaciòn
* de datos en modo 'HardCode'.
*
* @version 1.2 - 29 Marzo 2009.
* @author Ricardo Guerra.
*/

public class Serializando_Deserealizando_Objetos_01 implements Serializable{

private static final long serialVersionUID = -2071812553599487256L;


public static void main( String[] args ){

try{
/***************************************/
/**** ENVIAN OBJETOS 'Serializados' ****/
/***************************************/
FileOutputStream salida = new FileOutputStream( "objTemporal" ); //objTemporal, reconoce el nombre del Objeto de la Memoria.
ObjectOutput objSalida = new ObjectOutputStream(salida);

objSalida.writeObject( 123456 );
objSalida.writeObject( "Cesar Ricardo" );
objSalida.writeObject( "Guerra Arnaiz" );
objSalida.writeObject( new Date() );

objSalida.flush();
objSalida.close();


/********************************************/
/**** RECUPERAN OBJETOS 'Deserializados' ****/
/********************************************/
FileInputStream entrada = new FileInputStream( "objTemporal" ); //objTemporal, reconoce el nombre del Objeto de la Memoria.
ObjectInputStream objEntrada = new ObjectInputStream( entrada );

Integer codigo = (Integer)objEntrada.readObject();
String nombre = (String)objEntrada.readObject();
String apellido = (String)objEntrada.readObject();
Date fecha = (Date)objEntrada.readObject();

objEntrada.close();

System.out.println( "Objeto Deserealizado #01: " + codigo );
System.out.println( "Objeto Deserealizado #02: " + nombre );
System.out.println( "Objeto Deserealizado #02: " + apellido );
System.out.println( "Objeto Deserealizado #03: " + fecha );
}
catch( Exception e ){
e.printStackTrace();
}
}

public static long getSerialVersionUID() {
return serialVersionUID;
}
}

Serializando_Deserealizando_Objetos_02.java

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutput;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Date;

/**
* En esta clase estoy mostrando el manejo de Serializacion y Deserealizaciòn
* de datos utilizando un Objeto Bean de apoyo.
*
* @version 1.2 - 29 Marzo 2009.
* @author Ricardo Guerra.
*/

public class Serializando_Deserealizando_Objetos_02 implements Serializable{

private static final long serialVersionUID = -7282739136711013954L;


public static void main( String[] args ){

try{
BeanSerializable objeto = new BeanSerializable();

/***************************************/
/**** ENVIAN OBJETOS 'Serializados' ****/
/***************************************/
FileOutputStream salida = new FileOutputStream( "objTemporal" ); //objTemporal, reconoce el nombre del Objeto de la Memoria.
ObjectOutput objSalida = new ObjectOutputStream(salida);

objeto.setCodigo( 123456 );
objeto.setNombre( "Cesar Ricardo" );
objeto.setApellido( "Guerra Arnaiz" );
objeto.setFecha( new Date() );

objSalida.writeObject( objeto );

objSalida.flush();
objSalida.close();


/********************************************/
/**** RECUPERAN OBJETOS 'Deserializados' ****/
/********************************************/
FileInputStream entrada = new FileInputStream( "objTemporal" ); //objTemporal, reconoce el nombre del Objeto de la Memoria.
ObjectInputStream objEntrada = new ObjectInputStream( entrada );

BeanSerializable objetoBean = (BeanSerializable)objEntrada.readObject();

System.out.println( "Objeto: " + objetoBean );

if( objetoBean instanceof BeanSerializable ){
System.out.println( "Si es Instanciado al Objeto" );
}
else{
System.out.println( "No es Instanciado al Objeto" );
}

objEntrada.close();

System.out.println( "Objeto Deserealizado #1: " + objetoBean.getCodigo() );
System.out.println( "Objeto Deserealizado #2: " + objetoBean.getNombre() );
System.out.println( "Objeto Deserealizado #3: " + objetoBean.getApellido() );
System.out.println( "Objeto Deserealizado #4: " + objetoBean.getFecha() );
}
catch( Exception e ){
e.printStackTrace();
}
}

public static long getSerialVersionUID() {
return serialVersionUID;
}
}