我正在使用下面的代码片段,但是它并没有像我理解的那样工作。
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,而是返回一个空字符串(“”)。这对我来说没有意义。我没有正确理解什么?