Предположим, что у вас был внешний процесс, записывающий файлы в какой-то каталог, и у вас был отдельный процесс, периодически пытающийся прочитать файлы из этого каталога. Проблема, которую следует избегать, - это прочитать файл, который в настоящий момент находится в процессе написания другого процесса, поэтому он будет неполным. В настоящее время процесс, который читает, использует проверку таймера минимального количества файлов, поэтому он игнорирует все файлы, если их последняя измененная дата не превышает XX секунд.Как проверить, является ли файл «полным» (полностью написанным) с Java
Мне интересно, есть ли более чистый способ решить эту проблему. Если тип файла неизвестен (может быть несколько разных форматов), существует ли какой-то надежный способ проверить заголовок файла для количества байтов, которые должны быть в файле, а также количества байтов, находящихся в данный момент в файле, чтобы подтвердить их соответствие?
Спасибо за любые мысли или идеи!
У вас есть какой-либо контроль над процессом записи файлов в каталог, который вы находитесь смотреть? –
Помимо переименования файла по завершении, я должен сделать так, чтобы он читал файл, поскольку он записывается (думаю, 'tail' в Unix) –