code: public int getBytes(int index, GatheringByteChannel out, int length)
              throws IOException
      {
          checkPositionIndexes(index, index + length, this.length);
          index += offset;
          return out.write(ByteBuffer.wrap(data, index, length));
      }
docs: Transfers this buffer's data to the specified channel starting at the
  specified absolute {@code index}.
  
  @param length the maximum number of bytes to transfer
  @return the actual number of bytes written out to the specified channel
  @throws IndexOutOfBoundsException if the specified {@code index} is less than {@code 0} or
  if {@code index + length} is greater than
  {@code this.capacity}
  @throws java.io.IOException if the specified channel threw an exception during I/O