Я писал программу, которая следит за каталогом, и когда в нем создаются файлы, он меняет имя и перемещает их в новый каталог.В моей первой реализации я использовал Java Watch API API, который работал нормально, когда я тестировал файлы размером 1 КБ.Проблема, которая возникла, заключается в том, что на самом деле создаваемые файлы имеют размер от 50 до 300 Мб.Когда это произошло, API наблюдателя сразу же нашел файл, но не смог переместить его, потому что он все еще записывался.Я попытался поместить наблюдатель в цикл (который генерировал исключения, пока файл не мог быть перемещен), но это казалось довольно неэффективным.
Поскольку это не сработало, я попытался использовать таймер, который проверяет папку каждые 10 секунда затем перемещает файлы, когда это возможно.Это метод, который я использовал в конечном итоге.
Вопрос: Есть ли какой-либо сигнал для завершения записи файла без проверки исключений или постоянного сравнения размера?Мне нравится идея использовать API-интерфейс Watcher только один раз для каждого файла вместо постоянной проверки с помощью таймера (и работы с исключениями).
Все ответы приветствуются!
nt