计算文本文件中的行数(java)

下面是我如何计算文本文件中的行数。 只是想知道有没有其他方法这样做?

while(inputFile.hasNext()) { a++; inputFile.nextLine(); } inputFile.close(); 

我正在尝试将数据输入到数组中,我不想两次读取文本文件。

任何帮助/建议表示赞赏。

谢谢

如果您只想将数据添加到数组,那么我将新值附加到数组。 如果您正在阅读的数据量不是很大而且您不需要经常这样做,那应该没问题。 我使用这样的东西,如答案所示: 用Java读取纯文本文件

 BufferedReader fileReader = new BufferedReader(new FileReader("path/to/file.txt")); try { StringBuilder sb = new StringBuilder(); String line = br.readLine(); while (line != null) { sb.append(line); sb.append(System.lineSeparator()); line = br.readLine(); } String everything = sb.toString(); } finally { br.close(); } 

如果你正在读数字,字符串可以转换为数字,比如说整数intValue = Integer.parseInt(text)

如果您使用的是Java 7或更高版本,则可以使用readAllLines方法直接读取List的所有行。 这很容易

readAllLines

 List lines = Files.readAllLines(Paths.get(fileName), Charset.defaultCharset()); 

然后列表的大小将返回文件中的行数

 int noOfLines = lines.size(); 

如果您使用的是Java 8,则可以使用流:

 long count = Files.lines(Paths.get(filename)).count(); 

这将有很好的表现,真的很有表现力。

缺点(与Thusitha Thilina Dayaratn的答案相比)是你只有行数。 如果你还想在列表中包含这些行,你可以这样做(仍然使用Java 8流):

 // First, read the lines List lines = Files.lines(Paths.get(filename)).collect(Collectors.toList()); // Then get the line count long count = lines.size(); 

我没有足够的声誉来评论,但@superbob答案几乎是完美的,确实你必须确保传递Charset.defaultCharset()作为第二个参数,如:

 Files.lines(file.toPath(), Charset.defaultCharset()).count() 

那是因为Files.lines默认使用UTF-8然后使用非默认的UTF-8系统可以产生java.nio.charset.MalformedInputException。