Android アプリケーションがあり、onPause()/onResume() メソッドで作成したデータ構造をメモリに保存/取得して、FileOutputStream/FileInputStream を介して実行間でデータが保持されるようにしたいと考えています。これは標準的な方法です。
では、後で取得できるように、データ構造をファイルに保存するにはどうすればよいでしょうか (文字列でそれを行う例を見てきましたが、他のオブジェクトではそうではありません)。バイト配列からそれらを作成するこれらすべてのオブジェクトのコンストラクターを作成することに加えて、データ構造とそれに含まれる後続のオブジェクトに対して getBytes() 関数を作成する必要がありますか?
編集:ああ、わかりました。したがって、これはシリアライゼーションと呼ばれます。以下は正しいですか?
書くには:
FileOutputStream fileOut = new FileOutputStream("filename");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(e);
out.close();
fileOut.close();
読むには:
FileInputStream fileIn = new FileInputStream("filename");
ObjectInputStream in = new ObjectInputStream(fileIn);
e = (ObjectType) in.readObject();
in.close();
fileIn.close();
Edit2: また、データ構造と含まれるオブジェクト (およびサブオブジェクト) はすべて Serializable を実装する必要があります。たとえば、Dog の ArrayLists の BST がある場合、BST、ArrayList、および Dog クラスをすべて Serializable に実装してから、上記の関数を呼び出します。
これはすべて正しいですか?