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