首页javastandard_streamJava I/O - 如何重定向标准输出和错误

Java I/O - 如何重定向标准输出和错误

我们想知道如何重定向标准输出和错误。
  
import java.io.FileOutputStream;
import java.io.PrintStream;

public class Main {
  public static void main(String[] argv) throws Exception {
    System.setOut(new LogStream(System.out, new PrintStream(new FileOutputStream("out.log"))));
    System.setErr(new LogStream(System.err, new PrintStream(new FileOutputStream("err.log"))));
    
    System.out.println("output");
    System.err.println("error");
  }
}

class LogStream extends PrintStream {
  PrintStream out;

  public LogStream(PrintStream out1, PrintStream out2) {
    super(out1);
    this.out = out2;
  }

  public void write(byte buf[], int off, int len) {
    try {
      super.write(buf, off, len);
      out.write(buf, off, len);
    } catch (Exception e) {
    }
  }

  public void flush() {
    super.flush();
    out.flush();
  }
}