在使用redis进行对象存储时,需要对对象进行序列化操作,使用字节流的方式实现的工具类。
代码具体如下:
package com.leo.pay.util;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import org.apache.log4j.Logger;
/**
* 对象序列化工具
* @author leo
* @since 1.0.0_2016年12月1日
*/
public class SerializeUtil {
private static Logger logger = Logger.getLogger(SerializeUtil.class);
/**
* 序列化对象
* @author leo
* @since 1.0.0_2016年12月1日
*/
public static byte[] serialize(Object object) {
ObjectOutputStream oos = null;
ByteArrayOutputStream baos = null;
try {
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);
oos.writeObject(object);
byte[] bytes = baos.toByteArray();
return bytes;
} catch (Exception e) {
logger.warn("序列化对象出现异常: ", e);
}
return null;
}
/**
* 反序列化对象
* @author leo
* @since 1.0.0_2016年12月1日
*/
public static Object unserialize(byte[] bytes) {
ByteArrayInputStream bais = null;
try {
bais = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bais);
return ois.readObject();
} catch (Exception e) {
logger.warn("反序列化对象出现异常: ", e);
}
return null;
}
}