私はArrayList<ItemList>
を持っています
itemListは次のとおりです。
public class ItemList {
public ArrayList<Item> it = new ArrayList<Item>();
public String name = "";
public ItemList() {
}
}
アイテムは次のとおりです。
public class Item {
public String name = "";
public int count = 0;
public Item() {
}
}
私はこのリストをシリアル化しようとします:
try {
FileOutputStream fileOut = new FileOutputStream(sdDir + serFile);
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(List_Of_Lists);
out.close();
fileOut.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
このファイルはフォルダにあるので、うまくいったと思います。
しかし、ファイルからArrayList<ItemList>
に逆シリアル化することはできません
コード:
try {
FileInputStream fileIn = new FileInputStream(sdDir + serFile);
ObjectInputStream in = new ObjectInputStream(fileIn);
List_Of_Lists = (ArrayList<ItemList>) in.readObject();
Log.i("palval", "dir.exists()");
in.close();
fileIn.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
このArrayList<ItemList>
を逆シリアル化するにはどうすればよいですか?私はいつもIOExceptionをキャッチします。
Item
クラスとItemList
クラスはimplements Serializable
サブクラスを作成してから、serializabeメソッドを親クラスに追加すると、エラーが削除されます。