Java保存简单数据

Posted

技术标签:

【中文标题】Java保存简单数据【英文标题】:Java save simple Data 【发布时间】:2017-06-13 17:50:58 【问题描述】:

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

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

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

myButton.setText(labelsMap.get(CANCEL_BUTTON_LABEL)

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

【讨论】:

mhm 但是给每个标签一个名称 urrgh =D .. 我只是尝试在该保存类中放置一个字符串列表,每个标签在开始时都通过 id 获取其文本。还是您认为在该类中保护某种数组中的标签更好? 我只会使用Map<Integer, String> 来存储标签。在任何编辑时将此映射序列化到磁盘并在启动时对其进行反序列化。

以上是关于Java保存简单数据的主要内容,如果未能解决你的问题,请参考以下文章

Java注解简单学习

java+selenium——简单截图+保存在java工程目录下=====简单截图+时间+保存在java工程目录下

在 Java 应用程序中保存数据的最佳方式是啥?

java中几种Map在啥情况下使用,并简单介绍原因及原理

通过许多 appstarts 保存价值的简单方法?

java压缩 GZIP进行简单压缩,ZIP进行多文件保存