2013-08-14 3 views
1

Есть ли способ каким-то образом инициировать событие, которое будет делать что-то каждый раз при смене файла? Я имею в виду что-то подобное (в псевдокоде)Java, как обнаружить изменения файла

if(DetectedFileModified(pathToFile)){ do stuff } 

Я знаю, что я могу сделать это периодически, но я могу как-то сделать это без таймера? Я хочу, чтобы иметь возможность делать некоторые действия, когда пользователь обновляет txt-файл (не через код, а просто открывая файл и записывая внутри), и я не знаю, когда он это сделает.

+1

http://docs.oracle.com/javase/tutorial/essential/io/notification.html – SLaks

+0

Что такое среда (например, автономный, сервера приложений, Eclipse-IDE, .. .) – t777

+0

Возможный дубликат [Могу ли я наблюдать за сменой одного файла с помощью WatchService (не весь каталог)?] (Http://stackoverflow.com/questions/16251273/can-i-watch-for-single-file-change -с-watchservice-не-весь-каталог) –

ответ

5

Вам нужен WatchService

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

Oracle blog on the same

Смежные вопросы