Как сделать что бы данная строка не прерывала вывод в консоль, но при этом продолжала записывать в файл.
System.setOut(new PrintStream(new BufferedOutputStream(new FileOutputStream("step.txt")), false));
В данный момент все что после данной строки не выводится в консоль
System.out.println("test1");
System.setOut(new PrintStream(new BufferedOutputStream(new FileOutputStream("step.txt")), false));
System.out.println("test2");
test1 - будет выведенно в консоль, test2 - нет, но будет записан в файл
Или какая есть альтернатива вывода в файл все что пишется в консоли?
Можно воспользоваться классом TeeOutputStream из библиотеки Apache Commons:
FileOutputStream fos = new FileOutputStream("step.txt");
TeeOutputStream out = new TeeOutputStream(System.out, fos);
PrintStream ps = new PrintStream(out, false);
System.setOut(ps);
System.out.println("test1");
System.out.println("test2");
А можно просто вручную выводить в два места:
FileOutputStream fos = new FileOutputStream("step.txt");
PrintStream ps = new PrintStream(fos, false);
private void out(String text) {
System.out.println(text);
ps.println(text);
}
...
out("test1");
out("test2");
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники