[英]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.