Opens a new buffered {@link OutputStream} for writing to this sink. The returned stream isnot required to be a {@link BufferedOutputStream} in order to allow implementations to simplydelegate to {@link #openStream()} when the stream returned by that method does not benefitfrom additional buffering (for example, a {@code ByteArrayOutputStream}). This method should return a new, independent stream each time it is called.
The caller is responsible for ensuring that the returned stream is closed.
@throws IOException if an I/O error occurs in the process of opening the stream
@since 15.0 (in 14.0 with return type {@link BufferedOutputStream})