code: public ByteBuffer mapFile(String name) throws IOException
    {
      final Metadata metadata = internalFiles.get(name);
      if (metadata == null) {
        return null;
      }
  
      final int fileNum = metadata.getFileNum();
      while (buffersList.size() <= fileNum) {
        buffersList.add(null);
      }
  
      MappedByteBuffer mappedBuffer = buffersList.get(fileNum);
      if (mappedBuffer == null) {
        mappedBuffer = Files.map(outFiles.get(fileNum));
        buffersList.set(fileNum, mappedBuffer);
      }
  
      ByteBuffer retVal = mappedBuffer.duplicate();
      retVal.position(metadata.getStartOffset()).limit(metadata.getEndOffset());
      return retVal.slice();
    }
docs: Returns a mapped buffer of the smooshed file with the given name. Buffer's contents from 0 to capacity() are the
  whole mapped file contents, limit() is equal to capacity().