5

シリアル化可能なオブジェクトを内部メモリのファイルに書き込みたいです。次に、後でそのファイルからそのオブジェクトをロードしたいと思います。Androidでこれを行うにはどうすればよいですか?

4

1 に答える 1

13

まず、オブジェクトは を実装する必要がありますSerializableserialVersionUID直列化可能クラスに a を追加することを忘れないでください。

次に、オブジェクトの特定のフィールドを保存したくない場合は、それを としてマークしますtransient。すべてのフィールドがシリアライズ可能であることを確認してください。

次に、内部メモリにファイルを作成し、ObjectOutputStream を作成してオブジェクトを保存します。特定のフォルダーに保存する場合は、次のようなパスを作成できます。

File path=new File(getFilesDir(),"myobjects");
path.mkdir();

次に、そのパスを使用してオブジェクトを保存できます。

File filePath =new File(path, "filename");
FileOutputStream fos = new FileOutputStream(filePath);
ObjectOutputStream oos = new ObjectOutputStream(fos);               

oos.writeObject(object);
oos.close();

読み方も似ています:

FileInputStream fis = new FileInputStream(file);
ObjectInputStream in = new ObjectInputStream(fis);              

MyObjectClass myObject = (MyObjectClass ) in.readObject();

in.close();
于 2012-05-20T00:07:50.830 に答える