我目前正在尝试用 Java 编写一个简单的类似日记的程序,它允许我添加“条目”并能够浏览我从一开始就添加的所有“条目”。问题是,如果我运行程序,添加两个条目,退出程序,然后再次运行程序,我希望能够访问我之前添加的两个条目。我想我的问题是,我如何能够“保存”(如果这是正确的话)我添加的条目,以便每次程序终止时它们都不会被清除?
我环顾四周,似乎有一个我可以使用的工具,称为 Java Cache System,但我不完全确定这是否是我的情况所需要的。如果有人能指出我正确的方向,我将不胜感激。
当您运行程序并创建条目时,您将它们存储在主存储器(即 RAM)中。正如您所发现的,这些条目不会在您的程序的不同执行中持续存在。
您需要将条目存储在辅助存储(即硬盘驱动器)中。这可以通过将条目写入保存在磁盘上的文件,然后在程序启动时读取这些条目来完成。Java 提供了几种机制来读取和写入文件到机器上的文件系统。
一些应用程序使用数据库以关系方式存储信息,以便可以通过 SQL 请求获得信息,但是我建议使用简单的文件来存储您的条目。
最简单的方法是将这些数据以某种方式存储在一个文件中,然后在应用程序启动时从文件中读取它,一些关于如何从文件写入/读取的简单示例:
http://www2.cs.uic.edu/~sloan/CLASSES/java/MyFileReader.java
http://www2.cs.uic.edu/~sloan/CLASSES/java/MyFileReader.txt
http://www2.cs.uic.edu/~sloan/CLASSES/java/MyFileWriter.java
现在,您将对象存储在内存中,而不是这样,您可以尝试将它们序列化为某种格式,例如 xml。然后在下一次运行中从 xml 加载它们。或者您可以尝试使用数据库来存储对象。
我过去遇到过同样的问题,但有点不同。我清楚地理解了您的问题,我的解决方案是您输入和保存的任何日志都应该保存在您位置的特定位置,例如“C:\Your_Directory\Journal_folder\”
因此,当您最初输入它存储在上述位置的日志时会更容易,如果您再次退出并重新打开应用程序,只需尝试从上述目标位置检索数据。
因此,每当您进入应用程序时,它都会从该位置检索数据,如果不是则显示为空