Java IO: System.in, System.out, and System.error
The 3 streams System.in
, System.out
, and System.err
are also common sources or destinations of data. Most commonly used is probably System.out
for writing output to the console from console programs.
These 3 streams are initialized by the Java runtime when a JVM starts up, so you don't have to instantiate any streams yourself (although you can exchange them at runtime).
System.in
, System.out
, and System.err
are also common sources or destinations of data. Most commonly used is probably System.out
for writing output to the console from console programs.Simple System.out + System.err Example:
Here is a simple example that uses System.out
and System.err
:
try {
InputStream input = new FileInputStream("c:\\data\\...");
System.out.println("File opened...");
} catch (IOException e){
System.err.println("File opening failed:");
e.printStackTrace();
}
System.out
and System.err
:Exchanging System Streams
Even if the 3 System
streams are static members of the java.lang.System
class, and are pre-instantiated at JVM startup, you can change what streams to use for each of them. Just set a new InputStream
for System.in
or a new OutputStream
for System.out
or System.err
, and all further data will be read / written to the new stream.
To set a new System
stream, use one of th emethods System.setIn()
, System.setOut()
or System.setErr()
. Here is a simple example:
OutputStream output = new FileOutputStream("c:\\data\\system.out.txt");
PrintStream printOut = new PrintStream(output);
System.setOut(printOut);
Now all data written to System.out
should be redirected into the file "c:\\data\\system.out.txt". Keep in mind though, that you should make sure to flush System.out
and close the file before the JVM shuts down, to be sure that all data written to System.out
is actually flushed to the file.
System
streams are static members of the java.lang.System
class, and are pre-instantiated at JVM startup, you can change what streams to use for each of them. Just set a new InputStream
for System.in
or a new OutputStream
for System.out
or System.err
, and all further data will be read / written to the new stream.System
stream, use one of th emethods System.setIn()
, System.setOut()
or System.setErr()
. Here is a simple example:System.out
should be redirected into the file "c:\\data\\system.out.txt". Keep in mind though, that you should make sure to flush System.out
and close the file before the JVM shuts down, to be sure that all data written to System.out
is actually flushed to the file.
No comments:
Post a Comment