Summary
Override write(byte[]) and add writeBytes.
Problem
java.io.PrintStream was supposed to override methods not to throw IOException as indicated in the class documentation:
Unlike other output streams, a PrintStream never throws an IOException; instead, exceptional situations merely set an internal flag that can be tested via the checkError method.
The method write(byte[]) of java.io.FilterOutputStream was, however, not so overridden. The method is therefore documented as throwing IOException but never does so.
Also, there is no write method which has only a byte array parameter and which is not declared to throw IOException. Callers are thus obliged in this scenario to write a try-catch block even though IOException will never be thrown.
Solution
Override write(byte[]) adding clarifying documentation while retaining the existing behavior, and add writeBytes.
Specification
Please refer to the specifications of write(byte[]) and writeBytes in the attachments.
- csr of
-
JDK-8187898 PrintStream should override FilterOutputStream#write(byte[]) with a method that has no throws clause
-
- Resolved
-
- relates to
-
JDK-8305953 PrintStream's method write(byte buf[]) is declared to throw IOException
-
- Closed
-