O'Reilly logo

Java Cookbook by Ian F. Darwin

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required