如何通过CRLF逐行读取文件

gst*_*low 2 java string newline file

我有以下文件:

在此输入图像描述

以下代码:

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);
Run Code Online (Sandbox Code Playgroud)

它回来了5.

预期结果:2.

我错了什么?

我想只通过CRLF分割(而不是LF).

Jai*_*ash 5

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

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

while (scanner.hasNext()) {
    scanner.next();
    i++;
}
Run Code Online (Sandbox Code Playgroud)