The only PrintStream objects you are likely to need are System.out and System.err
When you need to create a formatted output stream, instantiate PrintWriter, not PrintStream.
System.out and System.err are famous already existing PrintStream objects you might well need to use, like, almost every time you called println() in your first 200 programs.
if you ever needed another one, you'd probably know it.
If you are instantiating something, PrintWriter is your guy.
Paul Clapham wrote:But of course by then they couldn't change System.out to be a PrintWriter instead of a PrintStream.