System.out.println vs PrintWriter

io, java, printstream, printwriter

Solution

The main difference is that `System.out` is a `PrintStream` and the other one is a `PrintWriter`. Essentially, `PrintStream` should be used to write a stream of bytes, while `PrintWriter` should be used to write a stream of characters (and thus it deals with character encodings and such).

For most use cases, there is no difference.

Problem

Is there a difference in using these two? When would you use one over the other? ``` System.out.println(result); ``` versus ``` PrintWriter out = new PrintWriter(System.out); out.println(result); out.flush(); ```

Original source