docs: public void seek(long position) throws IOException {
  
          if (!readOnly && file.length() < position) {
              long tempSize = position - file.length();
  
              if (tempSize > 1 << 18) {
                  tempSize = 1 << 18;
              }
  
              byte[] temp = new byte[(int) tempSize];
  
              try {
                  long pos = file.length();
  
                  for (; pos < position - tempSize; pos += tempSize) {
                      file.seek(pos);
                      file.write(temp, 0, (int) tempSize);
                  }
  
                  file.seek(pos);
                  file.write(temp, 0, (int) (position - pos));
  
                  realPosition = position;
              } catch (IOException e) {
                  appLog.logContext(e, null);
  
                  throw e;
              }
          }
  
          seekPosition = position;
      }