protected @NotNull File getTempCopy(@NotNull ThrowableConsumer<? super File, ? extends IOException> initializer) throws IOException {
    File file = getFile();
    File copy = getTempFile();
    if (!copy.exists() || copy.lastModified() != file.lastModified()) {
      FileUtil.createParentDirs(copy);
      initializer.consume(copy);
      Files.setLastModifiedTime(copy.toPath(), Files.getLastModifiedTime(file.toPath()));
    }
    return copy;
  }
protected @NotNull File getTempCopy(@NotNull ThrowableConsumer<? super File, ? extends IOException> initializer)