今天学到了两个很实用的方法,在此给大家做一个总结:
首先要将对象实现序列化
将对象集合转换成字符串:
/**将对象集合转String*/
public static String ChatRecordList2String(List<TalkBean> ChatRecordList)
throws IOException {
// 实例化一个ByteArrayOutputStream对象,用来装载压缩后的字节文件。
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
// 然后将得到的字符数据装载到ObjectOutputStream
ObjectOutputStream objectOutputStream = new ObjectOutputStream(
byteArrayOutputStream);
// writeObject 方法负责写入特定类的对象的状态,以便相应的 readObject 方法可以还原它
objectOutputStream.writeObject(ChatRecordList);
// 最后,用Base64.encode将字节文件转换成Base64编码保存在String中
String SceneListString = new String(Base64.encode(
byteArrayOutputStream.toByteArray(), Base64.DEFAULT));
// 关闭objectOutputStream
objectOutputStream.close();
return SceneListString;
}
将字符串转换成对象集合:
/**将String转成对象*/
@SuppressWarnings("unchecked")
public static List<TalkBean> String2ChatRecordList(String ListString)
throws StreamCorruptedException, IOException,
ClassNotFoundException {
byte[] mobileBytes = Base64.decode(ListString.getBytes(),Base64.DEFAULT);
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(mobileBytes);
ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);
List<TalkBean> SceneList = (List<TalkBean>) objectInputStream.readObject();
objectInputStream.close();
return SceneList;
}