为了账号安全,请及时绑定邮箱和手机立即绑定

如果我再次写入一个student实例呢?

好像原对象被覆盖了?

正在回答

3 回答

public class ObjectToByteDemo {
	
	  public static void main(String[] args){
		  try {
			ObjectOutputStream objectWriter =new ObjectOutputStream(
			new FileOutputStream("testFolder/objectTestDemo.txt"));
			StudentDemo st =new StudentDemo("XiaoMing","45398",19);
			StudentDemo st01 =new StudentDemo("Chen","87659",22);
			
			objectWriter.writeObject(st);
			objectWriter.writeObject(st01);
			objectWriter.flush();
			objectWriter.close();
			
			ObjectInputStream objectReader = new ObjectInputStream( 
			new FileInputStream("testFolder/objectTestDemo.txt"));
			StudentDemo tmpStu =(StudentDemo)objectReader.readObject();
			System.out.println(tmpStu);
			//Return the object read from the stream
			StudentDemo tmpStu01 =(StudentDemo)objectReader.readObject();
			System.out.println(tmpStu01);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		  
		  
	  }

}

结果:

StudentDemo [stuName=XiaoMing, stuID=45398, age=19]
StudentDemo [stuName=Chen, stuID=87659, age=22]

不会被覆盖,可以理解为像read()方法一样,指针从0开始,偏移一个读一个对象出来。

不能指定反序列哪一个对象。

0 回复 有任何疑惑可以回复我~
#1

bryan4it 提问者

恩恩,赞同。
2016-02-25 回复 有任何疑惑可以回复我~

如果想一次都出来完,就用一个集合,对其收集;然后在序列化

0 回复 有任何疑惑可以回复我~

没有被覆盖。应该是一次只能传输一个序列化对象。

    http://img1.sycdn.imooc.com//56c4353a00017dd206500445.jpg

0 回复 有任何疑惑可以回复我~
#1

bryan4it 提问者

那也就是说是不能指定readObject()反序列化得到哪个对象了?
2016-02-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

如果我再次写入一个student实例呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信