A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 山水游客 中级黑马   /  2012-6-28 20:21  /  1505 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如果new出来两个对象,然后相继把这两个对象写进文件(进行序列化),但是要是想犯序列化的话因为有两个对象,应该怎么操作呢?
比如说一下程序:
try{
testImformation ti = new testImformation("54080721","xxxxxxx","1234556");
testImformation ti2 = new testImformation("54080710","xxxxxxx","345361");
FileOutputStream fos = new FileOutputStream("F:\\java\\testImformation.txt");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(ti);
oos.writeObject(ti2);
}catch(IOException e){
e.printStackTrace();
}
怎么把它们反序列化呢?两个对象?更多呢?

评分

参与人数 1技术分 +1 收起 理由
刘蕴学 + 1 序列化现在很少会用到了

查看全部评分

1 个回复

倒序浏览
还是比较简单的,就参考下面的demo来做吧
public class UserInfo implements Serializable{
        String name;
        public static void main(String[] args) throws Exception {
                UserInfo u1 = new UserInfo();
                u1.name = "yx1989";
                UserInfo u2 = new UserInfo();
                u2.name = "zyp";
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
                ObjectOutputStream oos = new ObjectOutputStream(baos);
                oos.writeObject(u1);
                oos.writeObject(u2);
                byte[] data = baos.toByteArray();
                ByteArrayInputStream bais = new ByteArrayInputStream(data);
                ObjectInputStream ois = new ObjectInputStream(bais);
                System.out.println(((UserInfo)ois.readObject()).name);
                System.out.println(((UserInfo)ois.readObject()).name);
        }
}

当然更优雅的方式是,将这俩个对象放入一个集合,比如list中。

评分

参与人数 1技术分 +1 收起 理由
刘蕴学 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马