Welches ist das beste / sicherste Muster für die Überwachung einer angehängten Datei in Java?

Der Prozess einer anderen Person erstellt eine CSV-Datei, indem eine Zeile nach der anderen angehängt wird, sobald Ereignisse eintreten. Ich habe keine Kontrolle über das Dateiformat oder den anderen Prozess, aber ich weiß, dass es nur angehängt wird.

In einem Java-Programm möchte ich diese Datei überwachen und, wenn eine Zeile angehängt wird, die neue Zeile lesen und entsprechend dem Inhalt reagieren. Ignorieren Sie vorerst das CSV-Analyseproblem. Wie kann die Datei am besten auf Änderungen überwacht und jeweils eine Zeile gelesen werden?

Idealerweise werden hierfür die Standardbibliotheksklassen verwendet. Die Datei befindet sich möglicherweise auf einem Netzwerklaufwerk, daher möchte ich, dass etwas fehlerresistent ist. Wenn möglich, würde ich lieber kein Polling verwenden. Stattdessen würde ich eine Art Blockierungslösung bevorzugen.

Bearbeiten - angesichts der Tatsache, dass eine Blockierungslösung mit Standardklassen nicht möglich ist (danke für diese Antwort), was ist die robusteste Abfragelösung? Ich würde es vorziehen, die gesamte Datei nicht jedes Mal neu zu lesen, da sie sehr groß werden könnte.

Antworten auf die Frage(7)

Ihre Antwort auf die Frage