【问题标题】:Redirecting output to file then back to console in Java将输出重定向到文件,然后返回到 Java 中的控制台
【发布时间】:2015-04-20 03:10:43
【问题描述】:

使用 Eclipse 或 DrJava,如果我的 Java 程序包含以下代码以将输出重定向到文件,我如何在程序后面几行将输出重定向回控制台?

System.setOut(new PrintStream(new FileOutputStream("output.txt")));

System.setOut(new PrintStream(new File ("output.txt)));

【问题讨论】:

  • 为什么不直接使用文件流,而不是设置 System.out 到它,写入 System.out 然后再设置回来?
  • 我赞同“不要那样做”的建议。如果您想在那里发送数据,只需在 PrintStream 上调用 println()
  • 你能给我看一下这个方法的示例代码吗?非常感谢。

标签: java io-redirection


【解决方案1】:

简单的方法是保留旧流。

PrintStream oldout = System.out;

System.setOut(...);

....

System.setOut(oldout);

System.outSystem.err 是非常古老的做事方式,并不是很有用。它们只能用于小型的一次性程序。

【讨论】:

  • 我试过了。但是,在我重置后,System.out.println() 在控制台上按预期工作,但 Sedgewick 为他的普林斯顿 (Coursera) 课程创建的 StdOut 库没有打印到控制台。
  • 它不会因为它在本地缓存输出流,所以对 System.out 的任何更改都不会被注意到。您要做的是使 System.out 成为委托流,然后也更改它所委托的内容。
猜你喜欢
  • 1970-01-01
  • 2014-12-13
  • 1970-01-01
  • 2023-03-19
  • 2014-01-09
  • 1970-01-01
  • 2021-10-21
  • 2013-11-14
  • 2013-12-07
相关资源
最近更新 更多