通过覆盖属性文件来保存状态

时间:2010-02-07 20:35:21

标签: java properties

我正在使用java属性文件存储一些配置信息,关于对象创建我正在加载这些信息,然后在对象生命周期中的某些点我要覆盖属性文件中的值,以便下次对象实例化此类型,它配置有当前信息。 setProperty方法似乎没有这样做,当我使用store方法时,它只是将文件的新(更新)副本附加到原始文件的末尾。有什么想法吗?

由于

2 个答案:

答案 0 :(得分:5)

setProperty肯定不会自动执行此操作(除非您使用自己的类型覆盖它)。

store应该没问题 - 但我的猜测是你打开一个输出流(或编写器)来追加而不是覆盖。您是否始终打开输出流?或者你可能正在使用new FileOutputStream(path, true)附加?没有向我们展示任何代码,很难知道你做错了什么。

正如WizardOfOdds所说,preferences API首先可能是一个更好的主意。

答案 1 :(得分:1)

为什么不尝试序列化对象并在需要时保存它们。 使用Serializable对象,您可以随时保存对象的状态。下次当你想要加载它时,你可以从文件中读取它并用这个值初始化对象... 查看此网站: http://java.sun.com/j2se/1.4.2/docs/guide/serialization/index.html