如果单纯的进行序列化 然后储存 有概率转化不回来 报错
但是 加上一层base64转化以后就可以避免这个问题
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
/**
* @author Administrator
*
*/
public class SerializeUtil {
public static String serialize(Object object) {
ObjectOutputStream oos = null;
ByteArrayOutputStream baos = null;
try {
// 序列化
baos = new ByteArrayOutputStream();
oos = new ObjectOutputStream(baos);
oos.writeObject(object);
String string64 = new String(Base64.encode(baos.toByteArray()));
return string64;
} catch (Exception e) {
}
return null;
}
public static Object unserialize(String str) {
ByteArrayInputStream bais = null;
try {
// 反序列化
byte[] base64Bytes = Base64.decode(str.toCharArray());
bais = new ByteArrayInputStream(base64Bytes);
ObjectInputStream ois = new ObjectInputStream(bais);
return ois.readObject();
} catch (Exception e) {
}
return null;
}
}
public static <T> long addList(List<T> list, String key, Integer oldSize) {
int score = oldSize;
long code = 0L;
SortSet sortSet = RedisUtil.getInstance().sortSet();
for (T t : list) {
code = sortSet.zadd(key, score++, SerializeUtil.serialize(t));
if (code == 0) {
break;
}
}
return code;
}
代码垃圾 多多担待
本文介绍了一种使用Java序列化结合Base64编码来提高数据存储稳定性的方法,通过示例代码展示了序列化与反序列化的实现过程。
2万+

被折叠的 条评论
为什么被折叠?



