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