java对象序列化和反序列化

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;
}

 

你可能感兴趣的:(java对象序列化)