Comment puis-je suivre un fichier comme “Tail-f” n'en Java, sans tenir le fichier à ouvrir (Éviter de le renommer/supprimer)

je voudrais "Tail-f" beaucoup de fichiers de log dans une application java.

J'ai obtenu ce travail par le suivi de la taille et de la dernière mise à jour et à plusieurs reprises l'ouverture du fichier et la lecture de la dernière quelques octets à chaque fois que la taille du fichier ou de la dernière mise à jour les changements de temps, puis de le fermer tout de suite.

Cela semble problématique, car j'ai du ouvrir lorsque l'enregistreur décide de renommer le fichier qui va provoquer un certain genre de problème.

Je tiens également à détecter un "Roulé" fichier avec un mécanisme de plus en plus sûr que de remarquer que la taille de fichier réduite... semble enclins à faire des erreurs, mais peu probable.

Puisque je ne semble pas avoir accès au fichier descripteur ou d'un autre fichier de bas niveau utilitaires je risque de ne pas être en mesure de reproduire la queue behavor--mais il des trucs à la lecture d'un fichier sans le "Verrouillage" pour renommer/supprimer (Windows 7)

Je suppose que l'autre possibilité est de frayer un tail-f le processus et de lire le processus de sortie, mais qui semble un peu lourd, je suis la numérisation de 60 fichiers de log ici, certains ont beaucoup de sortie (la Plupart seront d'inactivité).

Si vous utilisez le JDK 7, vous pouvez vérifier les fichiers à l'aide de java.nio.file.WatchService.poll().
Vraiment bien classe! Je pense que cela va résoudre le problème de la détection tronque, mais j'ai toujours le problème d'avoir à ouvrir le fichier et de lire le texte (même si cela peut me permettre de faire ça aussi... il faut que je regarde de plus près). Merci
J'ai perdu vous.Quel système d'exploitation?Windows ou Linux?
Windows 7, peut-être le fait que j'utilise la "Queue" de git jeta vous?

OriginalL'auteur Bill K | 2013-01-30