簡體   English   中英

永久保存個性化類型的ArrayList的最佳方法

[英]Best approach to save permanently an ArrayList of a personalised type

我有一個ArrayList的人(ArrayList<Person>) ,我想將該ArrayList存儲在持久數據類型中。 SharedPreferences是一個解決方案,但它只是操作String,int,float ......變量。 你有什么主意嗎? 非常感謝你。

我將每個Person存儲在數組中作為SQLite數據庫中的一行。 當您想將其讀回程序時,每一行都將成為數組中的Person對象。

使用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 ,但是隨后您必須自己編寫所有字段(但這也很簡單)

您必須使用數據庫或將json響應寫入文件並從文件中讀取它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM