22 ноября 2008

Перенаправление системного вывода в файл

Для того что бы выводить информацию из Java программы в файл не обязательно использовать навороченные системы логгирования.
Можно просто перенаправить стандартный поток вывода и стандартный поток для ошибок в файл.
Сделать это можно с помощью следующего фрагмента кода:


PrintStream st = new PrintStream(new FileOutputStream("output.txt"));
System.setErr(st);
System.setOut(st);

7 комментариев:

Анонимный комментирует...

Т.е. туда будут писаться все исключения, возникшие во время работы программы? Или нужно явно в каждом месте указывать?
Можно примерчик, где кидается исключение и происходит перенаправление в файл?
Спасибо! :)ca

Rumoku комментирует...

Да , туда будут писаться все перехваченные исключения, те которые вы выводите через e.printStackTrace();

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

Анонимный комментирует...

Окей, спасибо, надо будет попробывать.
А если я не обрабатываю исключение, хотя бы тем же printStackTrace();
исключение будет писаться или нет?
Ну например
String [] array = {"Коля", "Вася", "Петя"}
String name = array[5];

Тут произойдет исключение ArrayIndexOutOfBoundsException

Так в таком случае, сработает этот механизм или нет? Еще раз спасибо :)

Rumoku комментирует...

да.

Анонимный комментирует...

Попробовал, действительно все работает.
Но есть еще вопрос. А можно ли продублировать вывод и в файл и в консоль IDE?

Анонимный комментирует...

Да, можно.

vaidajagoe комментирует...

casino,casino-help.en,regions.br,lk,sp - DrmCD
› gambling › gambling Nov 8, 2020 — 창원 출장안마 Nov 8, 이천 출장마사지 2020 At the casino, you will find 천안 출장샵 a 제천 출장마사지 selection of games, bonuses, and promotions on 바카라 조작 mobile with no registration needed.