追加到一个ObjectOutputStream
追加到一个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() ); }
我不知道会有多少个对象存在,所以我会在没有异常的情况下继续读取。根据谷歌的说法,这是不可能的。我想知道是否有人知道一种方法?