Set flushing mode for output stream

I think the best way is to

  1. Define default buffering for stdout and stderr. On Linux, stdout is line-buffered and stderr is unbuffered (I haven’t verified this, though). I think these are excellent defaults.
  2. Give the programmer the ability of setting the buffering behavior of a new stream.
  3. Give the programmer the ability of changing the buffering mode of any stream.

I’m afraid I don’t think that flushing in println() is the way to go. We expect maximal efficiency when printing into a fully buffered stream, but your redefinition of println would degrade the performance.