Redirecting Standard Output, and Error - Java Language Basics

Java examples for Language Basics:Console

Description

Redirecting Standard Output, and Error

Demo Code


import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;

public class Main {
  public static void main(String[] args) {
    try {//from  ww  w. j a va  2  s.  c  om
      // Tee standard output
      PrintStream out = new PrintStream(new FileOutputStream("out.log"));
      PrintStream tee = new TeeStream(System.out, out);

      System.setOut(tee);

      // Tee standard error
      PrintStream err = new PrintStream(new FileOutputStream("err.log"));
      tee = new TeeStream(System.err, err);

      System.setErr(tee);
    } catch (FileNotFoundException e) {
    }

    // Write to standard output and error and the log files
    System.out.println("welcome");
    System.err.println("error");
  }
}

class TeeStream extends PrintStream {
  PrintStream out;

  public TeeStream(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();
  }
}

Result


Related Tutorials