2014-01-31 3 views
0

Например, в коде, у меня есть: System.out.println("Hello World");Java: Как сохранить вывод консоли в текстовый файл?

Консоль будет печатать: Hello World

Итак, я хочу, чтобы сохранить консольный вывод в текстовый файл. Может кто-нибудь, пожалуйста, намекнуть мне на это?

+0

У вас есть googled 'письмо в файл в java'? –

+3

http://stackoverflow.com/questions/1994255/how-to-write-console-output-to-a-txt-file Возможный дубликат. – tilaprimera

+0

Вы можете либо напрямую написать файл, либо перенаправить вывод программы в файл с помощью команд ОС (см., Например, перенаправление в Linux) –

ответ

2

класс System обеспечивает вам способ сбросить выход в другом потоке, который System#setOut(PrintStream out)

Используя этот метод, вы можете передать вам FileInputStream к System.setOut и вы можете сохранить вывод консоли.

PrintStream printStream = new PrintStream(new FileOutputStream(file)); 
System.setOut(printStream); 

Одна интересная часть этого вопроса, хотя out объявлен как финал в классе System, но по-прежнему переназначить это на System#setOut.

+0

Внутри файла не найдено содержимого. все еще имея npEx. –

+0

, пожалуйста, разделите 'exception stacktrace' –

6

Создайте файл и установите его как вне класса System.

File file = new File("out.txt"); //Your file 
FileOutputStream fos = new FileOutputStream(file); 
PrintStream ps = new PrintStream(fos); 
System.setOut(ps); 
System.out.println("This goes to out.txt"); 
+1

Не будет ли это переписывать запись каждый раз, когда вы хотите записать в файл? –

+1

приятно, легко и поможет – Pythoner

+0

Это, похоже, не работает, выходной файл довольно пуст ... комментариев? – Scarl

Смежные вопросы