用Java锁定属性文件

时间:2010-09-05 21:30:11

标签: java file-io properties locking

我正在使用java属性文件构造。一开始我读它以填充对话框,但我也让用户能够更改对话框中的值并单击保存。这使我调用属性文件的setProperty方法。现在,由于这个webapp可以存在于多个浏览器上,所有都在更改同一个文件,我希望能够在“保存”方法中“锁定”属性文件。我怎么能做到这一点?我已经看到类似的问题引用FileLock,但我不确定这是否适用于属性文件构造。每个“setProperty”都是不同的写吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

setProperty仅更新属性集,不会写入文件。您必须调用store(OutputStream out, String header)方法将文件实际写入磁盘,这是您必须“锁定”文件的时间。

您可以使用FileLock来阻止多个用户同时写入文件,但是,每次用户想要保存时,您需要从磁盘重新加载属性文件,更改属性,并且再次写回文件,所有这些都没有释放文件锁,以确保没有保存过时的数据。