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

时间:2014-10-19 07:26:38

标签: java count lines

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

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

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

感谢任何帮助/建议。

感谢

5 个答案:

答案 0 :(得分:7)

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

readAllLines

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

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

int noOfLines = lines.size();

答案 1 :(得分:5)

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

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

这将有很好的表现,而且非常富有表现力。

缺点(与Thusitha Thilina Dayaratn的答案相比)是你只有行数。 如果您还希望在List中包含行,则可以执行(仍使用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();

答案 2 :(得分:2)

如果您只想将数据添加到数组中,那么我会将新值附加到数组中。如果您正在阅读的数据量并不大,而且您不需要经常这样做,那应该没问题。我使用这样的东西,如答案所示: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(text)

答案 3 :(得分:0)

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

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

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

答案 4 :(得分:-1)

您可以像这样进行操作,当您只需像这样进行操作时,每个人都有一些复杂的方法:

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

非常易于使用。