System.out and System.err stream objects are mapped to “standard” output and error stream respectively. By default, Java display standard output/error on display console.
Thus, when we print a statement using System.out:
System.out.println("Hello World!"); System.err.println("errr.. Hello World!");
It prints the messages to default console.
What if you want to reassign the “standard” output and error stream? Lets say you want to redirect all those standard out messages in a File.
System class provides some useful API to re-assign “standard” input, output and error streams.
setErr(PrintStream err): Reassigns the “standard” error output stream
setIn(InputStream in): Reassigns the “standard” input stream.
setOut(PrintStream out): Reassigns the “standard” output stream.
In below Java code we reassign “standard” output to a file and redirect all sysout messages to that file.
System.out.println("January"); System.out.println("February"); PrintStream ps = new PrintStream("C:/sample.txt"); System.setOut(ps); System.out.println("March"); System.out.println("April"); ps.close();
Thus only January and February will be displayed in console and March April will be printed in sample.txt file.