ホームページ >Java >&#&チュートリアル >大きな Java ファイルの行を効率的にカウントするにはどうすればよいですか?
Java でファイル内の行を効率的にカウントする
問題:
大きなファイルを扱う場合データ ファイルの場合、多くの場合、ファイル内の行数を決定する必要があります。最後に到達するまでファイルを 1 行ずつ読み取ることは可能ですが、この方法は時間がかかり、非効率的になる可能性があります。
解決策:
より効率的な方法Java でファイル内の行数をカウントする方法は、次のコードを使用することです:
public static int countLines(String filename) throws IOException { InputStream is = new BufferedInputStream(new FileInputStream(filename)); try { byte[] c = new byte[1024]; int readChars = is.read(c); if (readChars == -1) { // bail out if nothing to read return 0; } // make it easy for the optimizer to tune this loop int count = 0; while (readChars == 1024) { for (int i = 0; i < 1024;) { if (c[i++] == '\n') { ++count; } } readChars = is.read(c); } // count remaining characters while (readChars != -1) { for (int i = 0; i < readChars; ++i) { if (c[i] == '\n') { ++count; } } readChars = is.read(c); } return count == 0 ? 1 : count; } finally { is.close(); } }
このコードは、特に大きなファイルの場合、ファイルを 1 行ずつ読み取る単純なアプローチ。バッファリングされた入力ストリームと最適化されたループの使用により、ファイル データを効率的に処理し、不必要な読み取り操作を最小限に抑えることができます。
以上が大きな Java ファイルの行を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。