Java 如何通过CRLF逐行读取文件

Java 如何通过CRLF逐行读取文件,java,string,file,newline,Java,String,File,Newline,我有以下文件: 和以下代码: 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)。使用sc

我有以下文件:

和以下代码:

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)。

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

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

while (scanner.hasNext()) {
    scanner.next();
    i++;
}
\x0D\x0A
应该可以工作。