code: public long write(long pos, Iterable<ByteBuffer> bufs) throws IOException {
      long start = pos;
      for (ByteBuffer buf : bufs) {
        pos += write(pos, buf);
      }
      return pos - start;
    }
docs: Writes all available bytes from each buffer in {@code bufs}, in order, to this file starting at
  position {@code pos}. {@code pos} may be greater than the current size of this file, in which
  case this file is resized and all bytes between the current size and {@code pos} are set to 0.
  Returns the number of bytes written.
  
  @throws IOException if the file needs more blocks but the disk is full