用 Java 高效计算文件中的行数
问题:
使用大型文件时数据文件中,通常需要确定文件中的行数。虽然可以逐行读取文件直到到达末尾,但这种方法可能非常耗时且效率低下。
解决方案:
更高效的方法在 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 文件的行数?的详细内容。更多信息请关注PHP中文网其他相关文章!