gpt4 book ai didi

java - 将更改(永久)保存在数组列表中?

转载 作者:行者123 更新时间:2023-12-01 13:17:49 24 4
gpt4 key购买 nike

这可能吗?例如,用户将新的项目/元素添加到数组列表(缓冲读取器进程)中,并且肯定会发生更改。我的问题是,即使用户多次更改数组列表,它也可能会永久存在,即使他们关闭程序并再次打开它,它也会一直存在。

注意:不使用.txt

很抱歉问这样的问题,但我真的很好奇。谢谢!

最佳答案

当程序停止时,它使用的所有内存都会被释放,包括 ArrayList。除了不关闭程序之外,没有其他办法可以解决这个问题。如果您确实需要持久数据结构,则必须以某种方式将其写入硬盘驱动器。

您要求不要使用 .txt。好吧,没关系,但是您必须在某处创建一个文件来存储这些数据。

幸运的是,ArrayList 是可序列化的。只要其中的元素是可序列化的,您就可以轻松地将其存储在使用 writeObject 的文件中,如下所示:

try {
FileOutputStream fos = new FileOutputStream(filename);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(arraylist);
oos.close();
} catch(Exception e) {
e.printStackTrace();
}

然后您可以使用 readObject 重新创建 ArrayList。

ArrayList<Data> list;
try {
FileInputStream fis = new FileInputStream(filename);
ObjectInputStream ois = new ObjectInputStream(fis);
list = (ArrayList<Data>) ois.readObject();
ois.close();
} catch(Exception e) {
e.printStackTrace();
}

请注意,存储在此 ArrayList 中的对象也需要可序列化。这意味着如果您创建了这些类,则必须为它们创建一个 writeObjectreadObject 方法。

关于java - 将更改(永久)保存在数组列表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22323959/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com