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 streamsetIn(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(); |
Output:
JanuaryFebruary |
File: sample.txt
MarchApril |
Thus only January and February will be displayed in console and March April will be printed in sample.txt file.























