I'm not sure what you mean by "normal IOStream". The "err" stream is an OutputStream. It differs from the "out" stream in that it prints its output to "standard error" (or stderr) where as "out" prints to "standard out" (or stdout). The terms stderr and stdout steam from Unix where it is common to separate the "regular" output from the error messages. This allows you to redirect the "regular" output to a file and let the error messages print to the console, for example.