2011-07-15 16 views
3

Javaで実行時にログファイルを分析する必要があります。Java - 大きなテキストファイルを分析する

私が必要とするのは、大きなテキストファイルをとり、一定の範囲の行内で特定の文字列または正規表現を検索できるようにすることです。

範囲自体は別の検索によって推測されます。

たとえば、ファイル内の文字列"operation ended with failure"を検索したいのですが、ファイル全体ではなく、"starting operation"という行で始まります。

もちろん、私は平文InputStreamとファイルの読み込みでこれを行うことができますが、ライブラリやツールがあれば便利ですよね?

+0

便宜的には*レイジーローディング* :-D –

+0

のように聞こえますか?つまり、grep(a * nix標準ユーティリティ)はあなたのためにまさにそれを行います...しかし、コマンドラインツールです。 – chahuistle

+0

Splunkを使用する - http://www.splunk.com –

答えて

1

ファイルが本当に巨大である場合は、あなたのケースで良い書かれたJavaまたは任意の* nixのツール溶液のいずれかをほぼ均等に遅くなります( IOにバインドされます)。そのような場合には、ファイル全体を1行ずつ読むのを避けてはいけません。そして、この場合、Javaコードは数行しかありません。一度検索するのではなく、生成時にファイルを分割する方が効率的です。 ログファイルを別のプログラム/スクリプト(awkまたはpythonで完璧なものにする)にリダイレクトして、ファイルを後でファクトゥムではなく生成したときに分割することができます。

関連する問題