Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过覆盖属性文件保存状态_Java_Properties - Fatal编程技术网

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

Java 通过覆盖属性文件保存状态,java,properties,Java,Properties,我使用java属性文件来存储一些配置信息,在创建对象时我加载这些信息,然后在对象生命周期的某些点上,我希望覆盖属性文件中的值,以便下次实例化这种类型的对象时,使用当前信息对其进行配置。setProperty方法似乎没有这样做,当我使用store方法时,它只是在原始文件的末尾附加一个新的(升级的)文件副本。有什么想法吗 谢谢setProperty当然不会自动执行此操作(除非您使用自己的类型覆盖它) store应该可以,但我猜您正在打开一个输出流(或writer)以进行追加而不是覆盖。您是否一直保持

我使用java属性文件来存储一些配置信息,在创建对象时我加载这些信息,然后在对象生命周期的某些点上,我希望覆盖属性文件中的值,以便下次实例化这种类型的对象时,使用当前信息对其进行配置。setProperty方法似乎没有这样做,当我使用store方法时,它只是在原始文件的末尾附加一个新的(升级的)文件副本。有什么想法吗


谢谢

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

store
应该可以,但我猜您正在打开一个输出流(或writer)以进行追加而不是覆盖。您是否一直保持输出流打开?或者您可能正在使用
newfileoutputstream(path,true)
哪个将附加?如果不向我们展示任何代码,就很难知道您做错了什么


正如WizardOfOdds所说,首先,将对象序列化可能是一个更好的主意。

为什么不尝试序列化对象并在需要时保存它们呢。 使用可序列化对象,您可以随时保存对象的状态。下一次当你想加载它时,你可以从文件中读取它并用这个值初始化对象。。。 查看此网站:

在您的情况下,使用Preferences API不是更容易吗?我一直保持输出流打开。我应该为每次覆盖创建一个新的吗?@Aly:我会的。一般来说,在一个小的工作单元中打开/写入/关闭是一个好主意,这样在大多数情况下您就不会有一个打开的文件句柄。