ファイルが他のプロセスによって変更/書き込みされている間に、Javaでファイルを段階的に読み取りたいと考えています。したがって、プロセス「A」がファイル「X」に書き込み/ログを記録しており、別のプロセス「B」がファイル「X」を1秒ごとに(または連続して)特定のパターンを見つけるために増分的に読み取りたいとします。Javaでこれを行う最良の方法は何ですか? RandomAccessFile の 'seek' メソッドを使用できることはわかっていますが、それによってファイルの書き込みが妨げられることはありますか? これを行うより良い方法はありますか?
2 に答える
0
ファイルの変更されたデータをポーリングします。読み取り用に開くと、他のプログラムが同時にファイルに書き込むのを防ぐことができます。
于 2012-08-03T21:12:14.157 に答える
0
Java 7 を使用できる場合は、 WatchServiceを利用できますが、ファイル全体を解析する必要があるという問題は解決しません。
私が考えることができる唯一のことは、あなたが最後にいた位置を示す何らかの「マーカー」を維持することです. 次回ファイルを読みに来たときは、この時点までスキップしてそこから読むことができます (完了したらマーカーを更新します)。
于 2012-08-03T22:32:25.657 に答える