| `java.io.InputStream` defines a single abstract method: `int read()`, which |
| subclasses implement to return bytes from the logical input stream. |
| |
| However, in most circumstances, readers from `InputStreams` use higher-level |
| methods like `read(byte[], int offset, int length)` to read multiple bytes at a |
| time into a buffer. The default implementation of this method is to repeatedly |
| call `read()`. However, most InputStream implementations could do much better if |
| they can read multiple bytes at once (at the very least, avoiding unneeded |
| `byte` -> `int` -> `byte` casts that are needed when implementing the read() |
| method over an underlying `byte` source). |
| |
| The class in question implements `int read()` without also overriding `int |
| read(byte[], int, int)` and will thus be subject to the costs associated with |
| the default behavior of the multibyte read method. |