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

附加到ObjectOutputStream

附加到ObjectOutputStream

aluckdog 2019-06-21 15:43:27
附加到ObjectOutputStream不可能追加到ObjectOutputStream?我正试图将其添加到对象列表中。下面的片段是一个函数,每当完成作业时都会调用它。FileOutputStream fos = new FileOutputStream            (preferences.getAppDataLocation() + "history" , true);ObjectOutputStream out = new ObjectOutputStream(fos);            out.writeObject( new Stuff(stuff) );out.close();但是当我试图读它时,我只得到了文件中的第一个。然后我得到java.io.StreamCorruptedException.去读我用的FileInputStream fis = new FileInputStream         ( preferences.getAppDataLocation() + "history");ObjectInputStream in = new ObjectInputStream(fis);    try{     while(true)         history.add((Stuff) in.readObject());}catch( Exception e ) {      System.out.println( e.toString() );}我不知道会有多少个物体存在,所以我正在阅读,而没有例外。根据谷歌的说法,这是不可能的。我想知道有没有人知道办法?
查看完整描述

3 回答

?
弑天下

TA贡献1818条经验 获得超8个赞

就像API说,ObjectOutputStream构造函数将序列化流头写入基础流。并且这个头只需要在文件的开头,只有一次。所以呼唤

new ObjectOutputStream(fos);

FileOutputStream这将引用同一个文件多次写入标头并损坏该文件。


查看完整回答
反对 回复 2019-06-21
  • 3 回答
  • 0 关注
  • 407 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号