Writing Standard Output

Problem

You want your program to write to the standard output.

Solution

Use System.out.

Discussion

Again despite Rusty’s quote, there are circumstances (such as a server program with no connection back to the user’s terminal) in which System.out can become a very important debugging tool (assuming that you can find out what file the server program has redirected standard output into; see Section 9.7).

System.out is a PrintStream, so in every introductory text you see a program containing this line, or one like it:[24]

System.out.println("Hello World of Java");

The println method is polymorphic; there are forms of it for Object (which obviously calls the given object’s toString( ) method), for String, and for each of the base types (int , float, boolean, etc.). Each takes only one argument, so it is common to use string concatenation:

System.out.println("The answer is " + myAnswer + " at this time.");

Remember that string concatenation is also polymorphic: you can “add” anything at all to a string, and the result is a string.

Up to here I have been using a Stream, System.out. What if you want to use a Writer? The PrintWriter class has all the same methods as PrintStream and a constructor that takes a Stream, so you can just say:

PrintWriter pw = new PrintWriter(System.out);
pw.println("The answer is " + myAnswer + " at this time.");

One caveat with this string concatenation is that if you are appending a bunch of things, and a number and a character come togetherat ...

Get Java Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.