Alterando a saída do System.out.println()
13/dezembro/2009 - Java
Olá!
Quando criamos um programa em java e queremos mostrar alguma mensagem no console usamos inconscientemente o System.out.println(), mas e para gravar essas mesmas mensagens em um arquivo texto? Muito simples, basta dar um System.setOut() passando o PrintStream desejado. No exemplo abaixo alteramos a saída padrão, que era no console, para um arquivo texto.
String path = "D:\\saida.txt"; FileOutputStream fileOutputStream = null; try { fileOutputStream = new FileOutputStream(path); System.setOut(new PrintStream(fileOutputStream, true)); System.out.println("Teste"); } catch (FileNotFoundException e) { e.printStackTrace(); }
Até mais
Roberto
abril 23rd, 2013 at 21:02
Parabéns. Era justamente o que estava procurando.
Como eu faço para redirecionar para um arquivo texto e ao mesmo tempo permanecer dando os print’s no terminal?
Obrigado
abril 23rd, 2013 at 23:15
Igor,
Eu recomendo você dar uma olhada no log4j, ele controla melhor e te dá mais opções para trabalhar com as mensagens de log.
maio 7th, 2013 at 9:59
Obrigado.
uma dúvida: como eu faria para intercalar na execução enviar para o arquivo de log e voltar a mostrar no terminal?
maio 7th, 2013 at 10:17
É só guardar uma referência para o System.out e ficar alternando entre ele e o PrintStream do arquivo.
Exemplo:
O zero e o 2 aparecem no console e o 1 vai pro arquivo.
System.out.println(“0”);
PrintStream out = System.out;
try {
System.setOut(new PrintStream(new File(“d:\\logs.txt”)));
System.out.println(“1”);
System.setOut(out);
System.out.println(“2”);
} catch (FileNotFoundException e) {
e.printStackTrace();
}