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.
Java URL Encoder/Decoder Example - In this tutorial we will see how to URL encode/decode…
Show Multiple Examples in OpenAPI - OpenAPI (aka Swagger) Specifications has become a defecto standard…
Local WordPress using Docker - Running a local WordPress development environment is crucial for testing…
1. JWT Token Overview JSON Web Token (JWT) is an open standard defines a compact…
GraphQL Subscription provides a great way of building real-time API. In this tutorial we will…
1. Overview Spring Boot Webflux DynamoDB Integration tests - In this tutorial we will see…
View Comments
Good Trick.
If you want to bring console output back you can use this code:
[code language="java"]
FileOutputStream fdOut = new FileOutputStream(FileDescriptor.out);
PrintStream defaultPrintStream = new PrintStream(new BufferedOutputStream(fdOut, 128), true);
System.setOut(defaultPrintStream)
[/code]
I took it right from initializeSystemClass() method of System class.
can we attach more than one stream?