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();
}