Pessoal tem como eu configurar para que todas as saidas do System.out.println() escrevam em um arquivo em vez do terminal?
System.out em arquivo
9 Respostas
nao…
pra isso vc tem q usar classes como FileWriter…
;D
eu sei usando FileWritter
é pq fiz um programa e coloco varios System.out.println() no meio para me mostrar o que aconteceu.
Dai tenho q coloca ele para rodar de meia noite e ver o q aconteceu de manha. Dai queria aproveitar essa println q tinha colocado mas com essa saida sendo em um arquivo de log por exemplo.
Nao tem condicoes de fazer isso?
Acho que é System.setOut, mas é bom olhar o JavaDoc.
…
Tem sim…Faça o seguinte.
Utilize a classe FileOutputStream e PrintStream.
FileOutputStream fout = new FileOutputStream(“f.out”);
PrintStream printst = new PrintStream(fout);
System.setOut(printst);
Assim, tudo que for jogado no System.out.println será gravado no seu arquivo.
afdestro é isso que quero
só nao queria ter mudar todas os comandos que já estavam lá
entendeu?
vou olhar a documentação do System.setOut
valeu galera
uhmmm… então…
PrintStream out = new PrintStream(new File("c://teste.txt"));
System.setOut(out);
System.out.println("testando");
Hum… Se quiser manter as duas opçòes, tanto saída para o arquivo quanto saída na tela, podendo escolher entre um ou outro conforme desejar, pode definir o stardard output na linha de comando
java -cp . suaClasse > seu_arquivo_de_saida.txt
O operador “>” aqui redireciona todas as saídas que seriam no console (com exceção de saídas do tipo System.err.println(), por exemplo) para o arquivo informado. Vc pode passar o caminho absoluto do arquivo tbm, caso queria gravá-lo em outro diretório.
Usando o “>” vc vai sobrescrever o arquivo sempre que rodar o programa. Caso queria ir anexando novo conteúdo no arquivo a cada vez que executar seu programa, troque o “>” por “>>”.
Isso funciona tanto no linux quanto no windows.
Era justamente isso que queria.
Mas fiz de outra forma e deu certo tb. E melhor ainda pq cria um arquivo de log para cada execução.
File arquivo, diretorio;
try {
diretorio = new File(pasta);
diretorio.mkdirs();
arquivo = new File(pasta + nomeArquivo);
arquivo.createNewFile();
System.setOut(new PrintStream(arquivo));
}
catch (Exception e) {
System.out.println(e.getMessage());
}
Obrigado pessoal.