首頁 >Java >java教程 >如何有效率地計算大型 Java 檔案的行數?

如何有效率地計算大型 Java 檔案的行數?

Barbara Streisand
Barbara Streisand原創
2024-12-26 09:30:11239瀏覽

How Can I Efficiently Count Lines in a Large Java File?

用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();
    }
}

更有效率的方法在Java 中計算檔案行數的方法是使用以下程式碼:此程式碼比簡單的方法要快得多逐行讀取文件,特別是對於大文件。使用緩衝輸入流和最佳化循環可以有效地處理文件資料並最大限度地減少不必要的讀取操作。

以上是如何有效率地計算大型 Java 檔案的行數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn