Найдено результатов: 1

Я не получаю результат, который я ожидаю, используя 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();
    }
}

От чтения документации об readLine() он говорит:

Читает строку текста. Считается, что строка завершается любой из подач строки (\n ), возврата каретки ( \r) или возврата каретки, за которым немедленно следует перевод строки.

Возвращается : A String , содержащий содержимое строки, не включая символы завершения строки, или null, если достигнут конец потока

Бросает : IOException -при возникновении ошибки ввода-вывода

Исходя из моего понимания этого, readLine должен возвращать null в первый раз, когда вводится только окончание строки, например \r . Однако этот код просто заканчивается бесконечным циклом. После отладки я обнаружил, что вместо null, возвращаемого при вводе только символа завершения, он фактически возвращает пустую строку (""). Это не имеет смысла для меня. Что я не понимаю правильно?

java   java-io    

420   3   10:18, 3rd August, 2020