java对象实现Serializable接口即可几星序列化和反序列
public final class SerializeUtil {
/** 序列化对象
* @throws IOException */
public static byte[] serializeObject(Object object) throws IOException{
ByteArrayOutputStream saos=new ByteArrayOutputStream();
ObjectOutputStream oos=new ObjectOutputStream(saos);
oos.writeObject(object);
oos.flush();
return saos.toByteArray();
}
/** 反序列化对象
* @throws IOException
* @throws ClassNotFoundException */
public static Object deserializeObject(byte[]buf) throws IOException, ClassNotFoundException{
Object object=null;
ByteArrayInputStream sais=new ByteArrayInputStream(buf);
ObjectInputStream ois = new ObjectInputStream(sais);
object=(MatchMovie) ois.readObject();
return object;
}
}
注意:上面两个方法的序列化和反序列化操作的都是byte[] 字节数组,如果需要存储到数据库中 可以使用,%s, 注意 不是 ,'%s', 同时.需要把byte[]转化为16进制字符串.
方法如下:
public static String toHexString(byte[] bin)
{
if (bin.length > 0)
{
return "0x" + HexBin.encode(bin);
}
return null;
}
public static byte[] fromHexString(String hexString)
{
if (hexString != null && hexString.startsWith("0x"))
{
return HexBin.decode(hexString.substring(2, hexString.length()));
}
return null;
}