如何将对象集合转换成字符串

来源:互联网 发布:android studio java 编辑:程序博客网 时间:2024/06/05 06:16

今天学到了两个很实用的方法,在此给大家做一个总结:

首先要将对象实现序列化

将对象集合转换成字符串:

/**将对象集合转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;
    }

1 0