java序列化反序列化工具类SerializeUtils.java

Redis不支持直接将Java对象存储到数据库中,所以需要将java对象进行序列化得到字节数组,然后将字节数组存入到redis中,需要数据的时候就从redis数据库中取出字节数组,再经过反序列化将自己数组转换成对象使用(jdk序列化性能比谷歌公司的Protobuf序列化性能要差一些,而且序列化后的字节长度要也会长一些,所以推荐使用Protobuf.

import java.io.ByteArrayInputStream;  
import java.io.ByteArrayOutputStream;  
import java.io.IOException;  
import java.io.ObjectInputStream;  
import java.io.ObjectOutputStream;  
public class SerializeUtils {  
public static byte[] serialize(Object obj){  
byte[] bytes = null;  
try {  
ByteArrayOutputStream baos=new ByteArrayOutputStream();;  
ObjectOutputStream oos=new ObjectOutputStream(baos);  
oos.writeObject(obj);  
bytes=baos.toByteArray();  
baos.close();  
oos.close();  
} catch (IOException e) {  
e.printStackTrace();  
}  
return bytes;  
}  
public static Object deSerialize(byte[] bytes){  
Object obj=null;  
try {  
ByteArrayInputStream bais=new ByteArrayInputStream(bytes);  
ObjectInputStream ois=new ObjectInputStream(bais);  
obj=ois.readObject();  
} catch (Exception e) {  
e.printStackTrace();  
}  
return obj;  
}  
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值