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