簡體   English   中英

重置標准輸出流

[英]Resetting Standard output Stream

我知道 Java 中有一個函數可以使用System.setOut方法將標准輸出流設置為任何用戶定義的值。

但是有什么方法可以將標准輸出重置為先前存儲的輸出或標准輸出的輸出?

您可以通過FileDescriptor.out獲取標准輸出的文件描述符。 要重置標准輸出以打印到控制台,您可以

System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));

另一種方法是簡單地保持原始對象,如下所示:

PrintStream stdout = System.out;
System.setOut(new PrintStream(logFile));

// ...

System.setOut(stdout);                   // reset to standard output

這是一個老問題,但它一直出現在谷歌搜索中,我想糾正它。 您實際上可以通過使用FileDescriptor類來獲取它。 調用new PrintStream(new FileOutputStream(FileDescriptor.out)))應該會給你一些打印到標准輸出的東西。

import java.io.FileDescriptor;
import java.io.FileOutputStream;
import java.io.PrintStream;


public static void main(String [] args) {
    System.err.println("error.");
    System.out.println("out.");
    System.setOut(System.err);
    System.out.println("error?");
    System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));
    System.out.println("out?");
}

我知道Java中有一個函數可以使用System.setOut方法將“標准輸出流”設置為任何用戶定義的值。

但是,是否有任何方法可以將標准輸出重置為先前存儲的或標准輸出?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM