我正在使用java属性文件构造。一开始我读它以填充对话框,但我也让用户能够更改对话框中的值并单击保存。这使我调用属性文件的setProperty方法。现在,由于这个webapp可以存在于多个浏览器上,所有都在更改同一个文件,我希望能够在“保存”方法中“锁定”属性文件。我怎么能做到这一点?我已经看到类似的问题引用FileLock,但我不确定这是否适用于属性文件构造。每个“setProperty”都是不同的写吗?
谢谢!
答案 0 :(得分:0)
setProperty
仅更新属性集,不会写入文件。您必须调用store(OutputStream out, String header)
方法将文件实际写入磁盘,这是您必须“锁定”文件的时间。
您可以使用FileLock
来阻止多个用户同时写入文件,但是,每次用户想要保存时,您需要从磁盘重新加载属性文件,更改属性,并且再次写回文件,所有这些都没有释放文件锁,以确保没有保存过时的数据。