code: public static MappedByteBufferHandler map(File file) throws IOException
    {
      MappedByteBuffer mappedByteBuffer = Files.map(file);
      return new MappedByteBufferHandler(mappedByteBuffer);
    }
docs: Fully maps a file read-only in to memory as per
  {@link FileChannel#map(FileChannel.MapMode, long, long)}.
  
  <p>Files are mapped from offset 0 to its length.
  
  <p>This only works for files <= {@link Integer#MAX_VALUE} bytes.
  
  <p>Similar to {@link Files#map(File)}, but returns {@link MappedByteBufferHandler}, that makes it easier to unmap
  the buffer within try-with-resources pattern:
  <pre>{@code
  try (MappedByteBufferHandler fileMappingHandler = FileUtils.map(file)) {
  ByteBuffer fileMapping = fileMappingHandler.get();
  // use mapped buffer
  }}</pre>
  
  @param file the file to map
  
  @return a {@link MappedByteBufferHandler}, wrapping a read-only buffer reflecting {@code file}
  
  @throws FileNotFoundException if the {@code file} does not exist
  @throws IOException           if an I/O error occurs
  @see FileChannel#map(FileChannel.MapMode, long, long)