Блокировка файла свойств в Java - PullRequest
0 голосов
/ 06 сентября 2010

Я использую конструкцию файла свойств Java.Вначале я прочитал его, чтобы заполнить диалоговое окно, но я также даю пользователям возможность изменять значения в диалоговом окне и нажимать кнопку «Сохранить».Это заставляет меня вызывать метод setProperty файла свойств.Теперь, поскольку это веб-приложение может существовать в нескольких браузерах, каждый из которых изменяет один и тот же файл, я хочу иметь возможность «блокировать» файл свойств всякий раз, когда я использую метод «save».Как я могу сделать это?Я видел похожие вопросы, относящиеся к FileLock, но я не уверен, относится ли это к конструкции файла свойств.У каждого "setProperty" разные записи?

Спасибо!

1 Ответ

0 голосов
/ 06 сентября 2010

setProperty просто обновляет набор свойств, он не записывает файл.Вы должны вызвать метод store(OutputStream out, String header), чтобы фактически записать файл на диск, и в этот момент вам придется «заблокировать» файл.

Вы можете использовать FileLock, чтобы предотвратить одновременную запись в файл несколькими пользователями, однако каждый раз, когда пользователь хочет сохранить файл, вам нужно будет перезагрузить файл свойств с диска, изменить свойствои снова запишите файл, не снимая блокировку файла, чтобы убедиться, что устаревшие данные не сохранены.

...