我正在使用下面的代码片段,但是它并没有像我理解的那样工作。
public static void main(String[] args) {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line;
try {
line = br.readLine();
while(line != null) {
System.out.println(line);
line = br.readLine();
}
} catch (IOException e) {
e.printStackTrace();
}
}
通过阅读有关readLine()
它的 Javadoc 说:
读取一行文本。\n
一行被认为是由换行符 ( )、回车符 ( \r
) 或紧跟换行符的回车符中的任何一个终止的。
返回: AString
包含行的内容,不包括任何行终止字符,如果已到达流的末尾,则返回 null
抛出:
IOException
- 如果发生 I/O 错误
根据我对此的理解,readLine
除了行终止符之外,第一次没有输入任何输入时应该返回 null,例如\r
. 但是,这段代码最终会无限循环。经过调试,我发现只输入终止字符时返回的不是null,而是返回一个空字符串(“”)。这对我来说没有意义。我没有正确理解什么?