En este articulo muestro simplemente como se serializan objetos en Java. La Serializacion es una tecnica usada para pasar un objeto y su estado en memoria directamente a un stream de datos ya sea en un file o para transportar por la net. Aqui un poco de codigo.

Para serializar una clase basicamente aplicamos el codigo que esta debajo. En este caso nos produce un file .ser el cual puede ser transmitido por la network para su posterior procesamiento.

  public boolean serializeObject(String objectName, Object thisObject) {
    boolean success = true;
    String fileName = "obj.ser";
    FileOutputStream fStream = null;
    ObjectOutputStream oStream = null;
    try {
      fStream = new FileOutputStream(fileName);
      oStream = new ObjectOutputStream(fStream);
      oStream.writeObject(thisObject);
    } catch(Exception e) {
      success = false;
      System.out.println("Exception: Serialize class, serializeObject method: "   e);
    } finally {
      try {
        oStream.flush();
        oStream.close();
      } catch(Exception e2) {
        success = false;
        System.out.println("Exception2: Serialize class, serializeObject method: "   e2);
      }
    }
    return success;
  }    

Para la deserializacion debemos tener en cuenta que el objeto debe existir en nuestro CLASSPATH, si esto no sucede la conversion fallara en intento de deserializacion. Aqui el codigo.

  public Object deSerializeObject(String objectName) {
    Object thisObject = null;
    String fileName = webappPath   objectName   ".ser";
    FileInputStream fStream = null;
    ObjectInputStream oStream = null;
    try {
      fStream = new FileInputStream(fileName);
      oStream = new ObjectInputStream(fStream);
      thisObject = oStream.readObject();
    } catch(Exception e) {
      System.out.println("Exception: Serialize class, deSerializeObject method: "   e);
    } finally {
      try {
        oStream.close();
      } catch(Exception e2) {
        System.out.println("Exception2: Serialize class, deSerializeObject method: "   e2);
      }
    }
    return thisObject;
  }