code: public ByteBuffer readAll() throws IOException {
      MappedByteBuffer bb = dataFileChannel.map(FileChannel.MapMode.READ_ONLY,
                                   startOffset, length);
      return bb;
    }
docs: Maps in the relevant portion of the file. This avoid copying the data from
  OS pages into this process's page. It will be automatically unmapped when
  the ByteBuffer that is returned here goes out of scope. This method is
  currently invoked only by the FSDataInputStream ScatterGather api.