Redirect System.out and System.err

Redirect System.out and System.err

A crude but common way of debugging Java programs is to use the public System.out and/or System.err instances of PrintStream to display information:

 System.out.println("Entering section A of my code");

One drawback to this method is that if the information is sent to a display (usually the default), it may scroll off the screen before you’re able to view the message. Also, you may wish to have the messages stored in a more permanent way. You can accomplish this by redirecting the output to some place such as a printer or a local disk file using the System.setErr() and System.setOut() static methods. For example, this code will cause error messages to be stored in a disk file:

 FileOutputStream fos = new FileOutputStream("errors.txt");PrintStream ps = new PrintStream(fos);System.setErr(ps);

You should note, however, that the PrintStream class is deprecated, and as a result, its use will trigger a deprecation warning when compiled.


Share the Post: