public int readBytes(GatheringByteChannel out, int length)
            throws IOException
    {
        int readBytes = slice.getBytes(position, out, length);
        position += readBytes;
        return readBytes;
    }
public int readBytes ( GatheringByteChannel out , int length ) throws IOException { int readBytes = slice . getBytes ( position , out , length ) ; position += readBytes ; return readBytes ; }
Transfers this buffer's data to the specified stream starting at the
current {@code position}.

@param length the maximum number of bytes to transfer
@return the actual number of bytes written out to the specified channel
@throws IndexOutOfBoundsException if {@code length} is greater than {@code this.available()}
@throws java.io.IOException if the specified channel threw an exception during I/O