当前位置: 首页 > 面试题库 >

将更改(永久)保存在arraylist中?

马宜民
2023-03-14
问题内容

那可能吗?例如,用户将新的项目/元素添加到arraylist中(bufferedreader进程),并且肯定会发生更改。我的问题是,即使用户多次对arraylist进行更改,也可能永久关闭该列表,即使他们关闭程序并重新打开它也一直存在。

注意:不得使用.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();
}

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

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方法



 类似资料:
  • 问题内容: 通过下面的代码,我已经能够保存cookie,但是一旦关闭应用程序,cookie就会消失。 这是怎么引起的,我该如何解决? 问题答案: 您必须告诉CookieSyncManager 在 加载有问题的页面 后 进行同步。在您的示例代码中,该方法在尝试加载页面之前完全执行,因此同步过程(异步发生)可能会在加载页面之前完成。 相反,告诉CookieSyncManager同步WebViewCli

  • 问题内容: 我想将“:/ home / me / play /”值添加到PATH ,以安装Play!框架。 所以我运行了这个命令: 有效。但是在我下次检查时,该值又变回了原来的值。 所以我想我没有“保存”新值,对吗? 你是怎样做的? 问题答案: 加 给你并执行 为了立即反映对您当前终端实例的更改。

  • 我使用谷歌Chrome版本55.0.2883.87M。 当developer tool打开时,Navigator.UserAgent的值为:Mozilla/5.0(Linux;Android 6.0;Nexus 5 Build/MRA58N)AppleWebKit/537.36(KHTML,如Gecko)Chrome/55.0.2883.87 Mobile Safari/537.36 我通过htt

  • 问题内容: 我对 SQLite3 和 Python 3 做错了。也许我误解了SQLite数据库的概念,但是我希望即使关闭应用程序后,数据仍存储在数据库中?当我插入数据并重新打开应用程序时,插入物消失了,数据库为空。 这是我的小数据库: 我在哪里做错了? 问题答案: 调用以将事务刷新到磁盘。 程序退出时,最后一个未完成的事务将回滚到最后一个提交。(或更准确地说,回滚是由下一个打开数据库的程序完成的。

  • 问题内容: 如何在GDB中永久更改反汇编样式。我尝试过:在GDB中,但是稍后启动GDB时,它仍然具有att风格。 问题答案: gdb启动时会执行〜/ .gdbinit文件(如果存在);您应该能够添加行 对它。

  • 问题内容: 我有一些登录信息,比如说用户名,登录电子邮件ID和位置。 即使在用户注销并关闭窗口后,我也希望将此信息保留在浏览器中。 这样,当用户在注销或会话期满后返回时,Web应用程序将填写客户端用户名,并要求用户输入密码。 我要求的最好的例子是Google登录。! 目前,我只使用会话,不使用cookie。 有什么可能的解决方案? 问题答案: LocalStorage被认为是在浏览器中永久存储值的