code: public void update(InputStream stream, long length, long position) throws IOException
     {
        validateAndAdjustLenght(length, position, Integer.MAX_VALUE);
  
        MappedByteBuffer bb = channel.map(FileChannel.MapMode.READ_WRITE, position, length);
  
        ReadableByteChannel ch = Channels.newChannel(stream);
        ch.read(bb);
        ch.close();
  
        bb.force();
     }
docs: Update with <code>length</code> bytes from the specified <code>stream</code> to this value data
  at <code>position</code>.
  
  If <code>position</code> is lower 0 the IOException exception will be thrown.
  
  If <code>position</code> is higher of current Value length the Value length will be increased
  before to <code>position</code> size and <code>length</code> bytes will be added after the
  <code>position</code>.
  
  @param stream
  the data.
  @param length
  the number of bytes from buffer to write.
  @param position
  position in file to write data
  
  @throws IOException