public long getLineNumber(File file) { if (file.exists()) { try { FileReader fileReader = new FileReader(file); LineNumberReader lineNumberReader = new LineNumberReader(fileReader); lineNumberReader.skip(Long.MAX_VALUE); long lines = lineNumberReader.getLineNumber() + 1; fileReader.close(); lineNumberReader.close(); return lines; } catch (IOException e) { e.printStackTrace(); } } return 0; }
LineNumberReader.getLineNumber()从0开始计数,所以这里算行数的时候需要+1。
经测试,计算一个日志文件,大小207M,行数1325185,耗时1151ms。