Java如何将输出重置为控制台

问题描述 投票:0回答:1

有人可以向我解释为什么只使用System.setOut(System.out);

无法将输出重置回System.out吗?

如果我使用:

ByteArrayOutputStream output = new ByteArrayOutputStream();
PrintStream originalOutput = System.out;
System.setOut(new PrintStream(output));
////
System.setOut(originalOut);

它有效。但是,如果我只是使用

System.setOut(System.out);

然后没有。

谢谢

java io output outputstream
1个回答
0
投票

因为System.setOut()更改System.out本身。例如,在本教程中,https://www.tutorialspoint.com/java/lang/system_setout.htm包含以下代码:

package com.tutorialspoint;

import java.lang.*;
import java.io.*;

public class SystemDemo {

   public static void main(String[] args) throws Exception {

      // create file
      FileOutputStream f = new FileOutputStream("file.txt");

      System.setOut(new PrintStream(f));

      // this text will get redirected to file
      System.out.println("This is System class!!!");
   }
}

如果未更改System.out,则此代码无法在文本文件中输出。

© www.soinside.com 2019 - 2024. All rights reserved.