Object必须是序列化的对象
// 将list转为字符串类型数据
public static String list2String(List<ShopcarBean> list) throws IOException {
// 实例化一个ByteArrayOutputStream对象,用来装载压缩后的字节文件
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// 然后将得到的字符数据装载到ObjectOutputStream
ObjectOutputStream oos = new ObjectOutputStream(baos);
// writeObject 方法负责写入特定类的对象的状态,以便相应的readObject可以还原它
oos.writeObject(list);
// 最后,用Base64.encode将字节文件转换成Base64编码,并以String形式保存
String listString = new String(Base64.encode(baos.toByteArray(),
Base64.DEFAULT));
// 关闭oos
oos.close();
return listString;
}
// 将字符串形式保存的list还原
public static List<ShopcarBean> string2List(String str)
throws StreamCorruptedException, IOException,
ClassNotFoundException {
byte[] mByte = Base64.decode(str.getBytes(), Base64.DEFAULT);
ByteArrayInputStream bais = new ByteArrayInputStream(mByte);
ObjectInputStream ois = new ObjectInputStream(bais);
List<ShopcarBean> stringList = (List<ShopcarBean>) ois.readObject();
return stringList;
}