如果单纯的进行序列化 然后储存 有概率转化不回来 报错
但是 加上一层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; }
代码垃圾 多多担待