ホームページ >Java >&#&チュートリアル >Java で大きなテキスト ファイルの最後の行を効率的に取得するにはどうすればよいですか?

Java で大きなテキスト ファイルの最後の行を効率的に取得するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-19 21:11:03818ブラウズ

How to Efficiently Retrieve the Last Line (or Lines) of a Large Text File in Java?

Java で大きなテキスト ファイルの最後の行を効率的に取得する

非常に大きなテキスト ファイルを扱う場合、最後の行を抽出する最も効率的な方法を見つけることが不可欠になります。 。この記事では、Java で最も迅速な解決策を提供する 2 つの方法について詳しく説明します。

方法 1: 空白でない最後の行を取得する

ここで提供される 'tail' 関数は優れています。ファイル全体をステップスルーまたはロードせずに、空白でない最後の行を取得します。最後の文字まで巧みに移動し、改行に遭遇するまで逆方向に繰り返します。この方法では、時間が節約されるだけでなく、元のファイルの内容も保存されます。

public String tail( File file ) {
    ...
}

方法 2: 最後の N 行を取得する

最後の N 行を取得するシナリオの場合行が必要な場合は、「tail2」関数が有効であることがわかります。これは「tail」と同様のロジックに従いますが、行数を追跡して目的の行数を正確に取得します。

public String tail2( File file, int lines) {
    ...
}

呼び出し例:

これらのメソッドを利用するには、File オブジェクトをインスタンス化し、それを引数として 'tail' または'tail2.'

File file = new File("D:\stuff\huge.log");
System.out.println(tail(file));
System.out.println(tail2(file, 10));

Unicode 反転に関する注意:

反転プロセス中に Unicode 文字に関する潜在的な問題を認識することが重要です。アクセント記号、発音記号、または特殊記号を含む特定の文字は、文字列を反転すると正しく表示されない場合があります。多様な言語シナリオでは、徹底的なテストをお勧めします。

この現象の詳細については、提供されている URL を参照してください:

https://codeblog.jonskeet.uk/2009/11/02/ omg-ponies-aka-humanity-epic-fail/

これらの効率的なメソッドを実装することで、開発者は自信を持って最後の行または複数の行を取得できます。 Java の最大のテキスト ファイルからの行でも。

以上がJava で大きなテキスト ファイルの最後の行を効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。