Cómo probar si un archivo está "completo" (completamente escrito) con Java

Digamos que tuvo un proceso externo al escribir archivos en algún directorio, y tuvo un proceso separado que intentaba leer archivos de este directorio periódicamente. El problema que se debe evitar es leer un archivo que el otro proceso está actualmente en proceso de escribir, por lo que estaría incompleto. Actualmente, el proceso de lectura utiliza una verificación del temporizador de antigüedad mínima del archivo, por lo que ignora todos los archivos a menos que su última fecha de modificación tenga más de XX segundos.

Me pregunto si hay una manera más limpia de resolver este problema. Si se desconoce el tipo de archivo (podría haber un número de formatos diferentes), ¿existe alguna forma confiable de verificar el encabezado del archivo para ver el número de bytes que debería haber en el archivo, en comparación con el número de bytes que hay actualmente en el archivo para confirmar que coincidan?

Gracias por cualquier pensamiento o ideas!

Respuestas a la pregunta(8)

Su respuesta a la pregunta