code: public Promise<ByteBuf> read(long position) {
  		long size;
  
  		try {
  			size = channel.size();
  		} catch (IOException e) {
  			return Promise.ofException(e);
  		}
  
  		ByteBuf buf = ByteBufPool.allocate((int) (size - position));
  		return read(buf, position)
  				.whenException($ -> buf.recycle())
  				.map($ -> buf);
  	}
docs: Reads all bytes from this file into a buffer asynchronously,
  starting at the given position.
  
  @param position offset from which bytes of the file will be read