2011-03-13 45 views
3

是否有任何方法可以更改標準輸出流,以便將其寫入某個文件而不是Java中的控制檯?在Java中更改標準輸出

+3

java YourClass> outputFile ??? – 2011-03-13 11:09:46

回答

2

System.setOut(new PrintStream(file))

但是,使用記錄的方法是一種更好的方式。

0

您可以使用System.setOut()

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. 
    } 
} 

,但是這是一個例。您可以將Console和toFile簡單地配置爲您配置的靜態布爾值,而不是爲每個方法調用指定。

0

以下適用於我。 System.setOut(new PrintStream(new FileOutputStream(you file name)));};