现在项目中遇到了要将对象序列化存储到redis当中,可以使用以下类来实现:
public class SerializeUtil {
public static byte[] ObjectToByte(Object obj) {
byte[] bytes = new byte[1024];
try {
// object to bytearray
ByteArrayOutputStream bo = new ByteArrayOutputStream();
ObjectOutputStream oo = new ObjectOutputStream(bo);
oo.writeObject(obj);
bytes = bo.toByteArray();
bo.close();
oo.close();
} catch (Exception e) {
e.printStackTrace();
}
return bytes;
}
public static Object ByteToObject(byte[] bytes) {
Object obj = new java.lang.Object();
try {
// bytearray to object
ByteArrayInputStream bi = new ByteArrayInputStream(bytes);
ObjectInputStream oi = new ObjectInputStream(bi);
obj = oi.readObject();
bi.close();
oi.close();
} catch (Exception e) {
e.printStackTrace();
}
return obj;
}
public static void main(String[] args){
T_REL_VIDEO_ACTOR act = new T_REL_VIDEO_ACTOR();
act.setId(new Long(456));
byte[] objectToByte = SerializeUtil.ObjectToByte(act);
String hehe = new String(objectToByte);
T_REL_VIDEO_ACTOR ct = (T_REL_VIDEO_ACTOR)SerializeUtil.ByteToObject(hehe.getBytes());
System.out.println(ct.getId());
}
}