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

计算文本文件中的行数(java),java,count,lines,Java,Count,Lines,下面是我如何计算文本文件中的行数。只是想知道还有其他的方法吗 while(inputFile.hasNext()) { a++; inputFile.nextLine(); } inputFile.close(); 我试图将数据输入数组,我不想读取文本文件两次 欢迎提供任何帮助/建议 谢谢如果您使用的是java 7或更高版本,您可以使用readAllLines方法直接读取列表中的所有行。那很容易 如果您只想将数据添加到数组中,那么我会将新值附加到数组中。如果您正在读取

下面是我如何计算文本文件中的行数。只是想知道还有其他的方法吗

while(inputFile.hasNext()) {    
    a++;
    inputFile.nextLine();
}
inputFile.close();
我试图将数据输入数组,我不想读取文本文件两次

欢迎提供任何帮助/建议


谢谢

如果您使用的是java 7或更高版本,您可以使用readAllLines方法直接读取列表中的所有行。那很容易


如果您只想将数据添加到数组中,那么我会将新值附加到数组中。如果您正在读取的数据量不大,并且您不需要经常这样做,那么就可以了。我使用的是这样的答案:


如果您读取的是数字,则字符串可以转换为数字,例如整数intValue=Integer.parseInt(text)

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

long count = Files.lines(Paths.get(filename)).count();
这将有很好的表现,真的很有表现力

缺点(与Thusitha Thilina Dayaratn答案相比)是您只有行数。 如果还希望在列表中包含这些行,可以执行以下操作(仍然使用Java 8流):

//首先,读下面几行
列表行=Files.lines(path.get(filename)).collect(Collectors.toList());
//那就数一数
长计数=行。大小();

我没有足够的声誉发表评论,但@superbob answer几乎完美无瑕,事实上,您必须确保将Charset.defaultCharset()作为第二个参数传递,如:

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

这是因为默认情况下使用UTF-8的Files.lines,然后在非默认UTF-8系统上按原样使用,会产生java.nio.charset.MalformedInputException。

你可以这样做,每个人都有一些复杂的方法,只要你可以这样做:

$file = "file.txt";
$count = count(file($file));  
echo "there are $count lines";

非常易于使用。

参考您是要计算行数还是存储在阵列中?如果是后者,你不需要数线……是的。我必须阅读文本,然后根据文本的长度制作一个数组。然后再次读取数据并将其放入数组中。仅计算文本文件就需要10-15行代码。感谢Sanket的链接!这对普通读者非常有用,请注意
readAllLines
不是用来读取大文件的。或者快捷方式
files.lines(path.get(filename)).count()
谢谢@mattberne,我根据您的建议编辑了答案这是处理大文件的好方法(例如服务器日志?)考虑到Java8流是如何工作的,我认为它对于大型文件也是一种很好的方法。然而,它应该被测试以确保“我没有足够的声誉来评论”并不意味着你应该使用答案。这意味着你需要学习如何使用该网站,当你有足够的经验时,你将被授予评论权。请在那之前。哇,你真好。。。我只是想给阅读该页面的人提供额外的信息,这是我目前唯一能想到的方法。如果这是一个坏主意/行为,我很抱歉我只是想帮你…那不是java,或者这是我不知道存在的一个功能?哦,对不起,我以为这是php,不是java:我不能用BufferedReader来做这个过程吗?已经8年多没有使用java了,但我想我应该使用BufferedReader来读取文件,然后计算行数。对不起,如果我错了:P
long count = Files.lines(Paths.get(filename)).count();
// 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(file.toPath(), Charset.defaultCharset()).count()
$file = "file.txt";
$count = count(file($file));  
echo "there are $count lines";