快速更改配置/状态文件? JAVA

时间:2011-03-29 02:43:15

标签: java file-io

我需要一些方法来存储需要快速更改的配置/状态文件。每个键值对(键值)的状态存储在该文件中。根据通信(数字多媒体广播)硬件的状态,状态需要相当快地改变。

创建此类文件的最佳方法是什么? INI? XML? Java中的任何现成的文件编写者?我不能使用数据库。

3 个答案:

答案 0 :(得分:1)

听起来您需要随机访问才能频繁更新文件的某些部分而无需重写整个文件。设计二进制文件格式并使用RandomAccessFile API来读/写它。您将要使用固定数量的字节用于键和值,以便您可以索引到文件的中间并更新值,而无需重新写入以下所有记录。基本上,您将重新实现数据库如何存储表。

另一种选择是每个文件只存储一个键值对,这样重写文件的成本很低。也许你可以想办法使用文件名作为密钥,只在文件内容中存储值。

我倾向于尝试第二种选择,除非你处理超过几千条记录。

答案 1 :(得分:1)

显而易见的解决方案是将“配置”信息放入Properties对象,然后使用Properties.store(...)Properties.storeToXML(...)保存到文件输出流或编写器。

您还需要做一些事情来确保读取文件的任何内容都能看到一致的快照。例如,您可以每次写入一个新文件并执行删除/重命名舞蹈以将旧文件替换为新文件。

但是如果文件的更新速率太高,那么您将创建大量的光盘流量,并且您的应用程序速度很慢。无论您使用何种文件格式/ API,这都将适用(最终)。因此,您可能想要考虑不写入文件。

答案 2 :(得分:0)

在某些时候,变化太快的配置变为“程序状态”而不是配置。如果变化如此之快,为什么你有信心可以将其写入文件系统,然后从文件系统中读取它?

详细说明状态是数据的消费者是谁......