Java 保存简单数据

Java save simple Data

我需要从 java 桌面应用程序保存数据。数据的主要部分是大约 50 个标签的文本。分布在 5 Java GUI-classes 上。其余的是一些简单的应用程序设置。

现在我不确定如何保护这些数据。一位朋友告诉我使用随机访问数据并编写某种 "serializable" 对象。目前我正在使用 .txt 和 fileReader/writer。但是,如果您想通过每次更新搜索 .txt 中的位置,这对于 50-100 数据似乎是不切实际的。这是我与随机访问数据相同的问题。 我考虑过使用某种嵌入式数据库,比如 "h2",但我现在不知道这对于这么小的程序来说是否太复杂了。

另一个问题是如何将所有标签的文本放在程序开始处。我正在考虑的一种方法是拥有一个包含所有具有确定位置的标签的大列表,并在读取来自任何内容的数据后遍历此列表并设置标签。另一种方法是给每个标签一个 id。 但也许有更好的方法。但我现在不知道如何通过从数据中读取的名称访问标签。

用于保存可序列化对象。我可以保护所有 gui 对象还是需要将 se 数据合并到一个 class?

也许有人可以给个不错的建议 =)

对于这么少的标签,我会把所有数据都保存在内存中。在应用程序初始化时加载文件,并在每次编辑时从头开始写入整个文件

(如果你担心在写入过程中遇到掉电和随机崩溃时的可靠性,你需要在这里小心。例如,将新数据写入不同的文件,fsync() 然后原子地重命名新的文件到所需的文件名。)

我不确定我是否理解您的序列化问题 -- 但您似乎有某种语言翻译层告诉 gui 元素要显示什么。如果是这样,那么是的 - 我会将标签存储在中央 class(比如 LablesMap)中,并让其他 classes 使用一些常量引用 class 中的数据键。例如,

myButton.setText(labelsMap.get(CANCEL_BUTTON_LABEL)

其中 CANCEL_BUTTON_LABEL 是某个常量或枚举值。