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。