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!");
Code language: Java (java)
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();
Code language: Java (java)
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?