2012-06-14 5 views
1

Мне нужно создать событие, чтобы всякий раз, когда файл был добавлен или отредактирован, должно быть запущено событие, которое сообщит всем своим слушателям, в каком файле и строке данные были отредактированы, удалены, добавлены с какими данными.Обработка событий при вводе-выводе

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

Пример: Я редактирую файл 'txt' в Блокноте Windows; и как только я его сохраню, программа, запущенная в фоновом режиме, запускает событие, которое сообщает всем своим слушателям, что данные были отредактированы и какая-то обработка данных изменилась.

Если есть уже реализованное решение, пожалуйста, дайте ссылку на него.

ответ

1

Я не пробовал это, но, глядя на документацию, FileSystem#newWatchService может быть тем, что вам нужно. Использование (и примеры) этого WatchService доступно в 'Oracle WatchService tutorial'.

+0

См. Также [* WatchService для Java 6 *] (http://stackoverflow.com/questions/7968488/watchservice-for-java-6). – trashgod

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