【发布时间】:2020-12-01 21:26:22
【问题描述】:
我有一个 Java 系统,其中不同的类存储不同的信息。有一个主类,用户将在其中输入这些类的信息并使它们相互交互。用户完成后,他将退出系统。下次用户重新编译项目时,之前输入的所有数据都应该在那里。用户可以使用相同的数据或添加更多信息。
那么简单,如何在关闭时暂停/保存系统并在我再次执行时恢复它? PS。我不能在这个中使用数据库。一定是别的东西。
【问题讨论】:
-
你的字面意思是重新编译吗?也就是改程序,运行新版本?如果是这样,数据的结构是否会改变,或者只是操作该数据的操作?
-
没有。程序不会改变。刚刚重新执行。就像一开始一样,它会检查是否有一些旧数据保存在某个地方(不是 DB),然后它会检索该数据并将其存储在适当的位置(对象的 ArrayList)
-
您认为数据库与非数据库的区别是什么?这是否意味着您不能让另一个进程(例如数据库服务器)独立于该程序运行?众多轻量级的进程内数据库之一呢?对于 java 来说,最简单的事情就是让你的数据结构可序列化,并使用 Java 的内置序列化将其写入文件。
-
这正是我所需要的。但是数据序列化有点复杂,功能也不大。你能推荐其他的吗?
-
一般来说,存储数据并不简单。 Java 的序列化是健壮的并且可以处理很多极端情况,但是如果您不对数据类做任何奇怪的事情,使用它可以像让每个数据类实现
Serializable接口并写入和读取文件一样简单使用ObjectOutputStream或ObjectInputStream。如果您需要帮助,请展示您对代码的了解程度,并在遇到问题时提出具体问题。
标签: java file memory-management software-design