建议使用下面的代码片段: 基本上,它完全读取字符串 One\nTwo,通过 LineNumberReader 进行管道传输。到目前为止,没有什么特别的。问题:在 Java 8 和 Java 11 上,输出为 1。然而,在 Java 17 上,输出为 2。(看起来,最后一个未终止的行在后一种情况下被计数,但在前一种情况下不被计数) 。
问题:这是已知的不兼容性吗?是否有记录并且是有意为之?
谢谢,
约亨
final StringReader sr = new StringReader("One\nTwo");
final LineNumberReader lnr = new LineNumberReader(sr);
for (;;) {
final int c = lnr.read();
if (c == -1) {
System.out.println("Line number=" + lnr.getLineNumber());
break;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |