在Java中更改标准输出

时间:2011-03-13 11:06:41

标签: java

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

6 个答案:

答案 0 :(得分:7)

使用System.setOut(PrintStream out);

Check out the API documentation for System.setOut().

答案 1 :(得分:3)

您可以做一些事情。 要直接回答您的问题,您可以执行类似

的操作
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简单化为您配置的静态布尔值,而不是为每个方法调用指定。

答案 2 :(得分:2)

System.setOut(new PrintStream(file))

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

答案 3 :(得分:1)

看看System.setOut

答案 4 :(得分:1)

以下适用于我。

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

答案 5 :(得分:0)

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