Supponiamo che si abbia un processo esterno che scrive file in qualche directory e che si è verificato un processo separato che tenta periodicamente di leggere i file da questa directory. Il problema da evitare è la lettura di un file che l'altro processo è attualmente in fase di scrittura, quindi sarebbe incompleto. Attualmente, il processo che legge utilizza un controllo minimo del timer di età dei file, quindi ignora tutti i file a meno che la loro ultima data di modifica sia precedente a più di XX secondi.Come verificare se un file è "completo" (completamente scritto) con Java
Mi chiedo se esiste un modo più semplice per risolvere questo problema. Se il tipo di file è sconosciuto (potrebbe essere un numero di formati diversi) c'è un modo affidabile per verificare l'intestazione del file per il numero di byte che dovrebbero essere nel file, rispetto al numero di byte attualmente nel file per confermare che corrispondono?
Grazie per qualsiasi pensiero o idea!
Avete qualche controllo sul processo di scrittura di file nella directory che sei Guardando? –
A parte il rinominare il file al termine, l'approccio che prendo è quello di rendere corretto leggere il file mentre viene scritto (si pensi 'tail' in Unix) –