关于java:如何获取system.output.println中的文本?

How do you get the text in system.output.println?

本问题已经有最佳答案,请猛点这里访问。

在我的IDE的输出部分(所有system.out.println textx都出现在这里),我有几行文本。我想把它们保存到一个文本文件中。可能的代码是什么?


使用System#setOut()将输出重定向到FileOutputStream以将系统输出重定向到文件

1
2
3
4
5
6
7
8
 // for restore purpose
 PrintStream oldOutStream = System.out;

 PrintStream outFile = new PrintStream(
            new FileOutputStream("/path/to/file.txt", true));
 System.setOut(outFile);

 System.out.println("this will goto file");

我假设您知道日志框架,并且您不想使用它来记录某些内容


你可以用fileoutput strem复制所有的sop,并将所有的内容写入文件中。

如果您想写日志,那么可以使用log4j

1
2
3
4
5
6
7
8
9
10
11
12
13
String content ="This is the content to write into file";

File file = new File("filename.txt");

// if file doesnt exists, then create it
if (!file.exists()) {
    file.createNewFile();
}

FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(content);
bw.close();