我有一个ArrayList
Serializable
,我可以序列化,然后从文件中保存并加载它。但是如果我想在没有加载整个列表的情况下向arraylist添加一个对象,然后再次保存整个内容呢?我不想加载整个列表,然后添加一个对象,然后再次保存,因为它会影响我的表现。
这是我为保存和加载文件而制作的两种方法。 Deck
课程实现了Serializable
。
public static List<Deck> loadDeckDatabase() throws IOException, ClassNotFoundException {
FileInputStream fis = new FileInputStream("decks");
ObjectInputStream ois = new ObjectInputStream(fis);
List decList = (List) ois.readObject();
ois.close();
return decList;
}
public static void saveDeckDatabase(List<Deck> decks) throws IOException, ClassNotFoundException {
FileOutputStream fos = new FileOutputStream("decks");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(decks);
oos.close();
}
我希望有人可以帮助我。谢谢!
答案 0 :(得分:1)
或者:
Deck
是如何序列化的。答案 1 :(得分:1)
为什么不使用SQLite database?它是Java支持的轻量级本地(存储在文件中)数据库。您使用它的方式与使用通用数据库相同。
请查看此处的教程:http://www.tutorialspoint.com/sqlite/sqlite_java.htm
如果您不想使用数据库,我会看到两种方法来解决您的问题: