3

別のプロセスによって追加されたテキストファイルをバイト配列に読み込もうとしています。ファイルを定期的に「ポーリング」して、テキストの新しい「完全な」行のみを抽出したいと思います(行は新しい行で終了します)。標準ライブラリを使用してJava6でこれを行うための最良の方法は何ですか?

私は文字列の保存と作成には興味がないので、おそらくリーダーからのすべての「readLine()」メソッドは私が調べるべきものではありません。RandomAccessFileの使用を考えていますが、読み取ったバイト配列を切り捨てて、最後の改行文字で終了するようにする方法を考えています。

4

1 に答える 1

1

ファイルの長さをポーリングする 1 つのスレッドを持つことができます。長さが増加すると、その長さを byte[] として読み取り (これ以上は使用しないので、BufferedInputStream を使用しないでください)、後でファイルの読み取りを続行できます。byte[] を取り、それを PipedOutputStream に書き込みます。

メインスレッドでは、BufferedReader + InputStreamReader + PipedInputStream を使用できます。それを使用すると、プレーンな readLine() でうまくいきます。

于 2012-06-12T07:08:39.343 に答える