Записать текст с консоли в файл

395
07 июня 2017, 02:33

Как сделать что бы данная строка не прерывала вывод в консоль, но при этом продолжала записывать в файл.

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 - нет, но будет записан в файл

Или какая есть альтернатива вывода в файл все что пишется в консоли?

Answer 1

Можно воспользоваться классом 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");
READ ALSO
Возможно ли добавить и выполнить макрос в Excel файле из java-кода?

Возможно ли добавить и выполнить макрос в Excel файле из java-кода?

Возможно ли добавить макрос в Excel файл динамически, с помощью java-кода, и выполнить его так же?

293
SQL Server Agent+Java

SQL Server Agent+Java

Доброго времени сутокНужно при помощи Java производить настройку расписания извлечения данных в SQL Server, настраивать работу jobs, например редактировать...

230
Кастомизация списка

Кастомизация списка

Как можно сделать список чтобы был похож на этот?

205
В чем отличие между <T> и <T extends someClass>?

В чем отличие между <T> и <T extends someClass>?

Предположим, что есть класс:

289