Как проверить, является ли файл «полным» (полностью написанным) с помощью Java

Допустим, у вас есть внешний процесс, записывающий файлы в какой-либо каталог, и у вас был отдельный процесс, периодически пытающийся читать файлы из этого каталога. Проблема, которую следует избегать, - это чтение файла, который в данный момент находится в процессе записи другого процесса, поэтому он будет неполным. В настоящее время процесс, который читает, использует проверку таймера минимального срока хранения файлов, поэтому он игнорирует все файлы, если их дата последнего изменения не превышает XX секунд.

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

Спасибо за любые мысли или идеи!

Ответы на вопрос(8)

Ваш ответ на вопрос