web-dev-qa-db-ja.com

arrayList(Object)をシリアル化/逆シリアル化する方法

私は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をキャッチします。

14
Val

ItemクラスとItemListクラスはimplements Serializable

13
Pshemo

サブクラスを作成してから、serializabeメソッドを親クラスに追加すると、エラーが削除されます。

0
Abdul