System.out.print не выводится на консоль, иначе выводится новая строка - PullRequest
2 голосов
/ 06 октября 2019

У меня есть простой Java-код, который должен печатать 5 строк текста, 4 с новой строкой и последний без новой строки. К сожалению, это не работает, и только первые четыре строки печатаются, а последняя печатается только в том случае, если новая строка печатается в конце или после нее:

System.out.println("   1. Workers list");
System.out.println("   2. Add worker");
System.out.println("   3. Remove worker");
System.out.println("   4. Backup copy");
System.out.print("Choice> ");

Я попытался добавить System.out.flush(); после System.out.print("Choice> "); для принудительной печати, но она все равно не работает.

Ответы [ 2 ]

4 голосов
/ 06 октября 2019

Так работают некоторые консоли, они выводят только полные строки. Если это происходит с вами в IntelliJ IDEA, то именно так работает консоль IDEA.

Если вы запустите это с обычного терминала, вы увидите частичную строку.

0 голосов
/ 06 октября 2019

Метод println в классе OutputStream выглядит следующим образом.

 public void println(String x) {
        synchronized (this) {
            print(x);
            newLine();
        }
    }

, что означает, что метод println печатает строку, а затем добавляет новую строку, а метод print просто печатает строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...