0

Persons の ArrayList があり、(ArrayList<Person>)その ArrayList を永続的なデータ型に格納したいと考えています。SharedPreferences は解決策ですが、String、int、float`... 変数を操作するだけです。何かアイデアはありますか?どうもありがとうございました。

4

3 に答える 3

3

はるかに簡単なのは、 java を使用することSerialisationです。

Persons クラスだけが必要です。

public class Persons {

  ArrayList<Person> personList;
}

次に、単に使用します

// init Persons
Persons person = new Persons();
// add some
persons.personList.add(new Person());

// write out
ObjectOutpuStream oos = new ObjectOutputStream(new BufferOutputStream(new FileOutputStream("personsDB.ser")));

oos.writeObject(persons);
oos.close();

で読み返す

ObjectInputStream ois = new ObjectInputStream(new BufferedInpuStream(new FileInpuStream("personsDB.ser")));
persons = (Persons) ois.readObject();
ois.close();
// ready! Java does that all for you; since Persons is one object which contains something

欠点は、書き込み中にバッテリー電源が失われることです。最初に一時ファイルに書き込み、古いファイルを削除して正しいファイル名に名前を変更する人もいます。

高パフォーマンス (はるかに少ないスペース、はるかに高速) を使用するには、 を使用できますDataOutputStreamが、すべてのフィールドを自分で作成する必要があります (ただし、これも簡単です)。

于 2012-12-03T18:48:18.710 に答える
2

それぞれPersonを SQLite データベースの行として配列に格納します。プログラムに読み戻す場合、各行Personは配列内のオブジェクトになります。

于 2012-12-03T18:41:55.037 に答える
1

データベースを使用するか、json 応答をファイルに書き込み、ファイルから読み取る必要があります。

于 2012-12-03T18:47:29.770 に答える