The difference is that System.out is PrintStream and the other is PrintWriter . PrintStream intended to record a stream of bytes , and PrintWriter intended to record a stream of characters (and, therefore, it deals with character encodings, etc.). For most use cases there is no difference.
MultiplyByZer0
source share