将System.out.println输出到文本文件

5

我正在寻找一种方法来获取System.out.println的文本并将其保存在一个.txt文件中,例如:

    System.out.println("Java vendor: " + System.getProperty("java.vendor"));
    System.out.println("Operating System architecture: " + System.getProperty("os.arch"));
    System.out.println("Java version: " + System.getProperty("java.version"));
    System.out.println("Operating System: " + System.getProperty("os.name"));
    System.out.println("Operating System Version: " + System.getProperty("os.version"));
    System.out.println("Java Directory: " + System.getProperty("java.home"));

我想要一个.txt文件作为输出,有什么建议吗?谢谢。

重复的问题:如何使用Java将字符串保存到文本文件中? - GreyGoose
http://www.avajava.com/tutorials/lessons/how-do-i-redirect-standard-output-to-a-file.html - Kumaresan Perumal
@GreyGoose 不需要,因为原帖似乎要求将 System.out 输出重定向到文件。 - C.Champagne
1
可能是Redirect System.out.println的重复问题。 - Tom
"我在搜索。" 如果你真的搜索了,那么你应该会发现许多重复的内容。所以我怀疑你的说法。 - Tom
3个回答

12

您可以这样做,

PrintStream fileStream = new PrintStream("filename.txt");
System.setOut(fileStream);

那么任何println语句都将写入该文件中。


我同意。或者他可以使用平台特定的解决方案,如在 Bash 中将输出重定向到文件:java -jar program.jar > output 2> error-output - user5012597
更倾向于关闭明显的重复问题,而不是为了获取声望而刻意制造。 - Tom

2

首先,您需要声明一个包含要输出的消息的String text

String text = "Java vendor: " + System.getProperty("java.vendor");

如果您使用的是JDK 7或以上版本,则可以使用try-with-resources语句,它会自动关闭PrintWriter并输出全部内容:

try(PrintWriter out = new PrintWriter("texts.txt")  ){
    out.println(text);
}

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接