Segue exemplo abaixo:
import java.io.Serializable;
import java.util.Date;
public class MyObject implements Serializable {
private static final long serialVersionUID = 1L;
private Boolean myBoolean = true;
private String myString = "s";
private Date myDate = new Date();
public String toString() {
return "MyObject [ myBoolean=" + myBoolean + ", myString=" + myString + ", myDate=" + myDate + " ]";
}
}import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import org.apache.xmlbeans.impl.util.HexBin;
public class Main {
public static void main(String[] args) {
// Voce tem um objeto
MyObject objetoInicial = new MyObject();
// serializa ele e o transforma em String
byte[] bytesSerializados = Main.serialize(objetoInicial);
String stringFromBytes = HexBin.bytesToString(bytesSerializados);
// depois voce pode, a partir da String, transformar ele em bytes novamente
// e deserializar transformando-o no objeto inicial novamente
byte[] bytesFromString = HexBin.stringToBytes(stringFromBytes);
MyObject objetoDeserializado = (MyObject) Main.deserialize(bytesFromString);
System.out.println(objetoInicial);
System.out.println(objetoDeserializado);
}
/**
* Funcao para serializar um objeto
*/
public static byte[] serialize(Object obj) {
ByteArrayOutputStream out = new ByteArrayOutputStream();
ObjectOutputStream os = null;
try {
os = new ObjectOutputStream(out);
os.writeObject(obj);
} catch (IOException e) {
e.printStackTrace();
}
return out.toByteArray();
}
/**
* Funcao para deserializar um objeto
*/
public static Object deserialize(byte[] data) {
ByteArrayInputStream in = new ByteArrayInputStream(data);
try {
ObjectInputStream is = new ObjectInputStream(in);
return is.readObject();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return null;
}
}Abraço!!
Adriano Schmidt
