Proces kogoś innego tworzy plik CSV, dodając do niego linię naraz, w miarę jak zdarzają się zdarzenia. Nie mam kontroli nad formatem pliku lub innym procesem, ale wiem, że to się tylko dopełni.W języku Java, jaki jest najlepszy/najbezpieczniejszy wzorzec monitorowania dołączanego pliku?
W programie Java chciałbym monitorować ten plik, a po dołączeniu linii odczytać nową linię i reagować zgodnie z zawartością. Zignoruj na razie problem z analizą CSV. Jaki jest najlepszy sposób monitorowania pliku pod kątem zmian i czytania linii w czasie?
Idealnie byłoby użyć standardowych klas biblioteki. Plik może znajdować się na dysku sieciowym, więc chciałbym coś solidnego do awarii. Wolałbym raczej nie używać sondowania, jeśli to możliwe - wolałbym zamiast tego jakieś rozwiązanie blokujące.
Edycja - biorąc pod uwagę, że rozwiązanie blokujące nie jest możliwe w przypadku klas standardowych (dzięki za tę odpowiedź), jakie jest najsolidniejsze rozwiązanie ankietowe? Wolałbym nie czytać całego pliku za każdym razem, ponieważ może on być dość duży.
Powyższe kody gwarantują czytanie dołączonej linii? – DerekY
Moim wymaganiem jest oglądanie folderu i jak tylko plik zostanie dodany/zapisany/przeniesiony do folderu, podejmij natychmiastowe działanie (np. Przesyłając plik pocztą e-mail). Problem polega na tym, że gdy plik jest duży, może upłynąć trochę czasu, zanim zostanie ukończony zapisany lub skopiowany, podczas gdy zdarzenie FILE_CREATE zostanie ogłoszone, gdy tylko pierwsze bajty pliku zostaną zapisane w folderze. Nie mogę więc natychmiast wykonać tej akcji. Jaki jest niezawodny sposób sprawdzenia, czy plik został w całości zapisany przed wykonaniem jakiejkolwiek czynności na nim? –