Object acting as a buffer of bytes.
Buffer instances are managed by the owning byte channel and recycled when released, in order
to minimize memory consumption. Byte buffers are automatically acquired by
BufferOutputStreams and passed to the underlying channel.
The data contained in a buffer can be read through the dedicated
BufferInputStream returned by one of the
ByteChannel.inputStream()
methods. Note that only one input stream can be created for each buffer, any further attempt
will generate an exception.
Used buffers will be released as soon as the corresponding input stream is closed.