Ниже я использую фрагмент кода ниже, однако он работает не так, как я понимаю.Я не получаю результат, который я ожидаю, используя readLine() в Java
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();
}
}
От чтения Javadoc о readLine()
он говорит:
Считывает строку текста. Линия считается завершенной любым из линейных каналов (\n
), возвратом каретки() или возвратом каретки, после чего немедленно возвращается строка.
Возвращает: String
, содержащие содержимое строки, не включая любые линии прекращения символов, или ноль, если конец потока достигнут
Броски: IOException
- Если Ошибка ввода-вывода
По моему пониманию, readLine
должен возвращать null при первом вводе ввода, отличном от завершения строки, например \r
. Однако этот код просто заканчивается бесконечно. После отладки я обнаружил, что вместо null, возвращаемого при вводе только символа завершения, он фактически возвращает пустую строку (""). Для меня это не имеет смысла. Что я не понимаю правильно?
Does readLine() возвращает строку плюс charater строки - '\ n' или только строку? – Ashwin 2012-05-18 11:33:44