public static MappedBytes allocate(File file, FileChannel.MapMode mode, long size) {
    if (file == null)
      throw new NullPointerException("file cannot be null");
    if (mode == null)
      mode = FileChannel.MapMode.READ_WRITE;
    if (size > Integer.MAX_VALUE)
      throw new IllegalArgumentException("size for MappedBytes cannot be greater than " + Integer.MAX_VALUE);

    RandomAccessFile randomAccessFile = createFile(file, mode);
    try {
      MappedByteBuffer buffer = randomAccessFile.getChannel().map(mode, 0, size);
      return new MappedBytes(file, randomAccessFile, buffer, mode);
    } catch (IOException e) {
      throw new CatalystIOException(e);
    }
  }
public static MappedBytes allocate ( File file , FileChannel . MapMode mode , long size ) { if ( file == null ) throw new NullPointerException ( "file cannot be null" ) ; if ( mode == null ) mode = FileChannel . MapMode . READ_WRITE ; if ( size > Integer . MAX_VALUE ) throw new IllegalArgumentException ( "size for MappedBytes cannot be greater than " + Integer . MAX_VALUE ) ; RandomAccessFile randomAccessFile = createFile ( file , mode ) ; try { MappedByteBuffer buffer = randomAccessFile . getChannel ( ) . map ( mode , 0 , size ) ; return new MappedBytes ( file , randomAccessFile , buffer , mode ) ; } catch ( IOException e ) { throw new CatalystIOException ( e ) ; } }
Allocates a mapped buffer.
<p>
Memory will be mapped by opening and expanding the given {@link java.io.File} to the desired {@code count} and mapping the
file contents into memory via {@link java.nio.channels.FileChannel#map(java.nio.channels.FileChannel.MapMode, long, long)}.

@param file The file to map into memory. If the file doesn't exist it will be automatically created.
@param mode The mode with which to map the file.
@param size The count of the buffer to allocate (in bytes).
@return The mapped buffer.
@throws NullPointerException If {@code file} is {@code null}
@throws IllegalArgumentException If {@code count} is greater than {@link Integer#MAX_VALUE}

@see #allocate(java.io.File, long)