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:
January February |
File: sample.txt
March April |
Thus only January and February will be displayed in console and March April will be printed in sample.txt file.