我将 ArrayLists 写入文件。我用 FileInputStream 阅读它。但总是只有“第一个”ArrayList 是通过阅读出现的。我用 readInt() / wirteInt() 和循环尝试了它,但总是抛出异常,通过调用 readInt() --> EOF 我想从这个文件中读取所有 ArrayList 到一个 ArrayList 中。我的应用程序需要持久化,所以我序列化了 ArrayLists。
写入文件:
try {
FileOutputStream fos = new FileOutputStream(_cache, true);
ObjectOutputStream os = new ObjectOutputStream(fos);
// os.writeInt(newValueList.size()); // Save size first
os.writeObject(newValueList);
os.flush();
os.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
从文件中读取:
List cachedValueList = new ArrayList<String>();
ObjectInputStream o = new ObjectInputStream(new FileInputStream("caching.io"));
// int count = o.readInt(); // Get the number of regions
try {
cachedValueList.add(o.readObject());
} catch (EOFException e) {
o.close();
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}