У меня есть папка, в которой выводятся непрерывно новые файлы. В Java, что является лучшим способом обнаружить изменения в файловой системе (т.е. указанная папка, в которой выводятся файлы) и добавляют недавно прибывшие файлы к структуре данных очереди так, чтобы я мог последовательно обработать каждый входящий файл.
Я знаю о listFiles () функция в классе Файла, но использую это, я могу только получить файлы, которые доступны в момент времени. Конечно, я могу непрерывно опрашивать папку и получать список файлов в нем с помощью потока. Но это лучший способ или там лучший способ выполнить это.
Непрерывный опрос - это способ сделать это в Java на данный момент - хотя и не опрашивайте слишком часто, это может быть довольно сложной операцией, если каталог содержит много записей.
JDK 7 будет иметь специальный API для этого java.nio.file.WatchFile
К сожалению, стандартного способа сделать это до выхода JDK7 не существует. Но в Интернете есть несколько библиотек, которые используют для этого собственные функции различных операционных систем.
Библиотеки, которые я просмотрел: jPoller и jNotify Но в конце концов я просто опросил каталог, который был мне интересен, когда мне пришлось это сделать.