繁体   English   中英

在Java中更改标准输出

[英]Changing Standard output in Java

是否有任何方法可以更改标准输出流,以便将其写入某个文件而不是Java中的控制台?

使用System.setOut(PrintStream out);

查看System.setOut()的API文档。

你可以做一些事情。 要直接回答你的问题,你会做类似的事情

System.setOut(new FileOutputStream(myFile));

但是,我会使用日志记录框架来写入文件。 首先,在某处初始化您的记录器:

FileHandler handler = new FileHandler("mylogfile.txt", true); // True to append to file, false to overwrite.
Logger logger = Logger.getLogger(getClass().getName());
logger.addHandler(handler);

然后,您可以使用每次要打印时调用的方法,例如:

public void output(String message, boolean toConsole, boolean toFile) {
    if (toConsole) {
        System.out.println(message);
    }
    if (toFile) {
        m_logger.info(message); // Your instance variable of Logger.
    }
}

你可以随心所欲地做到这一点,但这就是一个例子。 您可以将toConsole和toFile简单地设置为静态布尔值,而不是为每个方法调用指定。

System.setOut(new PrintStream(file))

但是使用日志记录方法是一种更好的方法。

以下适用于我。

System.setOut(new PrintStream(new FileOutputStream(you file name)));

看看System.setOut

您可以使用System.setOut()来执行此操作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM