如何通过CRLF逐行读取文件

时间:2016-06-21 11:24:51

标签: java string file newline

我有以下文件:

enter image description here

以下代码:

Scanner scanner = new Scanner(new FileReader(new File(file.txt)));
scanner.useDelimiter("\r\n");
int i = 0;
while (scanner.hasNext()) {
    scanner.nextLine();
    i++;
}
System.out.println(i);

返回5

预期结果:2

我错了什么?

我想只按CRLF分割(不是LF)。

1 个答案:

答案 0 :(得分:5)

使用scanner.next()来调用指定的分隔符。

scanner.nextLine()将使用\n(确切模式为\r\n|[\n\r\u2028\u2029\u0085])作为分隔符,因此长度为5。

while (scanner.hasNext()) {
    scanner.next();
    i++;
}