Java: System.out.println и System.err.println путаются в выводе

187
15 декабря 2017, 03:10

Есть задача: с помощью команд System.out.println и System.err.println вывести текст в красной рамке. Типа вот так:

*******
*текст*
*******

Но при выводе в IDEA всё время вылетает то текст до рамки, то после, то иначе, но не по заданию. В Eclipse видел, что работает. Понимаю, что в потоках проблема, а решить не получается.

System.err.print("*******\n");
System.err.print("|");
System.out.print("text");
System.err.print("|");
System.err.print("*******\n");
Answer 1

Попробуйте так (очищать буфер после каждого вывода):

print(System.err, "*******\n");
print(System.err,"|");
print(System.out,"text");
print(System.err,"|");
print(System.err,"*******\n");
private void print(PrintStream ps, String output)  {
    ps.print(output);
    ps.flush();
}
Answer 2

Дело в том, что System.out.print буферизирует данные для вывода, в отличие от System.err.print.

Что это значит ?

Например, вы печатаете используя System.out.println. Затем производите какие-то операции, затем опять печатаете. System.out.println произведет печать всех элементов сразу, а не по очередно.

System.err.print мгновенно выводит элементы на печать, не буферизируя данные.

Answer 3

Решили задачу так: public static void main(String[] args) { try { System.err.print("**********\n| "); System.err.flush(); Thread.sleep(50); System.out.print("text"); System.out.flush(); Thread.sleep(50); System.err.print(" |\n**********"); } catch (InterruptedException e) { e.printStackTrace(); } }

READ ALSO
Не выполняется метод setViewValue адаптера

Не выполняется метод setViewValue адаптера

Всем приветЕсть база данных SQLite и есть ListView для вывода ее значений

164
Кастомный ProgressBar android

Кастомный ProgressBar android

Хочу сделать ProgressBar который состоит из 5-ти звездФон у этих звезд серый и при увеличении прогресса эти звезды должны заполнятся золотым цветом

162
Подключение в maven сторонней библиотеки

Подключение в maven сторонней библиотеки

Вопрос, хочу добавитьjar библиотеку к maven проекту, чтобы потом jenkins собирался нормально

165
Как проверить, входят ли все элементы одного словаря в другой?

Как проверить, входят ли все элементы одного словаря в другой?

Как можно проверить, содержит ли словарь map1 все пары <Key, Value>, содержащиеся в map2?

137