TGViewer
Java Ready | Программирование Java Ready | Программирование @java_ready · 9.25K subscribers
Post #2227 1.16K
Следим за появлением файлов в папке через WatchService!

Создадим наблюдатель и зарегистрируем каталог. Папка должна существовать заранее:
Path dir = Path.of("incoming");
try (WatchService watcher = FileSystems.getDefault().newWatchService()) {
dir.register(watcher, ENTRY_CREATE, ENTRY_MODIFY);


Константы ENTRY_CREATE и ENTRY_MODIFY берутся из StandardWatchEventKinds. try-with-resources закроет наблюдатель при выходе из блока.

Дальше ждём сигнал. Метод take блокирует поток, пока событие не появится:
    while (true) {
WatchKey key = watcher.take();
for (WatchEvent<?> event : key.pollEvents()) {


Контекст события содержит имя относительно наблюдаемой папки, а не готовый абсолютный путь. Не подставляй его отдельно от dir:
            if (event.kind() == OVERFLOW) continue;
Path file = dir.resolve((Path) event.context());
System.out.println(event.kind() + " " + file);
}


После обработки обязательно сбросим ключ. Если каталог удалён или больше недоступен, reset вернёт false:
        if (!key.reset()) break;
}
}


События могут повторяться, а при перегрузке наблюдатель сообщит OVERFLOW. Поэтому важную обработку лучше делать идемпотентной и предусмотреть повторное сканирование каталога после переполнения.

👉 Java Ready | #практика
  • ❤ 8
  • 👍 4
  • 🔥 2
More from @java_ready
  1. Oct 5, 2026Почему после Stream.toList() нельзя добавить элемент? При работе со Stream часто нужно соб…
  2. Oct 5, 2026Как оплачивать зарубежные сервисы в 2026 году? Можно бегать между посредниками и бояться б…
  3. Oct 5, 2026Находим три самых популярных товара! Есть поток покупок с повторяющимися названиями. Постр…
  4. Oct 2, 2026photo post
  5. Oct 1, 2026Шпаргалка по sealed-иерархиям в Java! На картинке показано, как sealed-класс ограничивает…
  6. Sep 30, 2026Почему kubectl apply ещё не означает, что приложение заработало? Во время деплоя часто зап…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →