下面是我如何计算文本文件中的行数。只是想知道有没有其他方法来做到这一点?计算文本文件中的行数(java)
while(inputFile.hasNext()) {
a++;
inputFile.nextLine();
}
inputFile.close();
我想输入数据到数组中,我不想两次读取文本文件。
任何帮助/建议表示赞赏。
感谢
下面是我如何计算文本文件中的行数。只是想知道有没有其他方法来做到这一点?计算文本文件中的行数(java)
while(inputFile.hasNext()) {
a++;
inputFile.nextLine();
}
inputFile.close();
我想输入数据到数组中,我不想两次读取文本文件。
任何帮助/建议表示赞赏。
感谢
如果你只是想将数据添加到一个数组中,然后我将新值添加到数组中。如果您正在阅读的数据量不大,并且您不需要经常这样做,那应该没问题。我用这样的事情,在这个答案给出:Reading a plain text file in 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(文本)
如果您使用的是Java 7或更高版本,你可以直接读取使用readAllLines方法的所有行的列表。这将是很容易
List<String> lines = Files.readAllLines(Paths.get(fileName), Charset.defaultCharset());
则列表的大小,将返回的行数的文件
int noOfLines = lines.size();
对于休闲读者,请注意'readAllLines'不适合阅读大文件。 – Stephan 2015-05-20 06:35:07
如果你使用的是Java 8,你可以使用流:
long count = Files.lines(Paths.get(filename)).count();
这将有很好的表现,真的很有表现力。
不利的一面(与Thusitha Thilina Dayaratn答案相比)是你只有行数。 如果你也想在列表中有行,你可以做(仍然使用Java 8流):
// First, read the lines
List<String> lines = Files.lines(Paths.get(filename)).collect(Collectors.toList());
// Then get the line count
long count = lines.size();
或者快捷方式Files.lines(Paths.get(filename))。count()' – 2016-02-08 23:22:38
Thanks @MattByrne,我根据你的建议编辑了答案 – superbob 2016-02-09 08:07:32
这对于大文件是很好的方法(例如服务器日志?) – 2017-06-19 17:32:48
我没有足够的信誉发表评论,但@superbob答案几乎是完美的,你的确应该确保通过Charset.defaultCharset()作为第二参数,如:
Files.lines(file.toPath(), Charset.defaultCharset()).count()
这是因为使用Files.lines UTF-8通过默认,然后使用,因为它是非默认UTF-8的系统上可以产生的java.nio。 charset.MalformedInputException。
*“我没有足够的评论声望”* **并不意味着您应该使用答案**。这意味着你需要学习如何使用该网站,并且当你有足够的经验时,你将被授予评论的[特权](/帮助/特权)。在此之前,请[提供不需要提问者澄清的答案](// meta.stackexchange.com/q/214173)。 – 2016-11-17 16:04:46
Woah,这真是太好了......我只是想给阅读该页面的人提供额外的信息,而这是我现在唯一可以想到的方式。如果这是一个糟糕的主意/行为,我很抱歉,我只是想帮助... – 2016-11-18 15:07:41
参考http://stackoverflow.com/questions/1277880/how-can-i-get-the-count-of-line-in-a-file-in-an-efficient-way – DeepInJava 2014-10-19 07:33:34
你想要计数行或存储在数组中?如果后者你不需要数线...... – assylias 2014-10-19 07:34:42
是的。我必须阅读文本,然后根据文本的长度制作一个数组。然后再次读取数据并将其放入数组中。它只需要10-15行代码就可以对文本文件进行计数。 – Nghia 2014-10-19 07:35:01