public final class NoThrowOutputStream
Wraps an existing output stream, converting all the underlying stream's IOExceptions
to our own NoThrowOutputStream.HiddenException, which is a subclass of RuntimeException. This
means that the methods don't have IOException in their throws clauses.
NOTE: The name is slightly misleading in that these methods still might throw an
IOException wrapped in a HiddenException, just not an
Also, it does have IOException in the throws clause of close(),
but you're not supposed to call that method.