Java BufferedReader是否缺少尾随换行符?

Java BufferedReader是否缺少尾随换行符?,java,io,Java,Io,我有一个字符串,如:b\na\n a\n a\n\ta\n应该有6行,但下面的代码跳过了最后一行空行 br = new BufferedReader(new FileReader(file)); String line; while ((line = br.readLine()) != null) { System.err.println("b4 line: " + line); } 使用扫描仪似乎可行,但bufferedReader有什么问题 while ((line = br.re

我有一个字符串,如:b\na\n a\n a\n\ta\n应该有6行,但下面的代码跳过了最后一行空行

br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
    System.err.println("b4 line: " + line);
}
使用扫描仪似乎可行,但bufferedReader有什么问题

while ((line = br.readLine()) != null) {
    System.err.println("b4 line: " + line);
}

共有5行,因为您有5次\n,最后一次之后没有\n行


所以没什么不对。

我数了五行。字符串以\n结尾,因此这将是最后一行。最后一行之后没有数据。

readLine查找\n并返回。如果你在你的例子中计数这个外观,你会意识到它只返回五行。

如果我需要考虑一条线,有可能做到吗?你能列出你期望找到的线吗?b、 a,a,a,\t您需要向文件中再添加一个\n。以下三个答案都是绝对错误的。这很重要,因为BufferedReader对这两种情况的处理是等效的: