Буферизация может очень помочь. Попробуйте это:
System.setOut( new PrintStream(new BufferedOutputStream(System.out)) );
Но будьте осторожны: вы не увидите, что результат будет появляться постепенно, но все в одно мгновение. Это здорово, но если вы используете его для отладки, и программа завершает работу до ее завершения, в некоторых случаях возможно, что вы не увидите текст, напечатанный непосредственно перед сбоем.
Это потому, что буфер не был очищен до сбоя. Он был напечатан, но все еще находится в буфере, и не добрался до консоли, где вы можете его увидеть. Я помню, как это происходило со мной во время загадочного сеанса отладки. Лучше всего время от времени выполнять явную очистку, чтобы убедиться, что вы видите это:
System.out.flush();