@Override
  public @NotNull OutputStream getOutputStream(@NotNull VirtualFile file, Object requestor, long modStamp, long timeStamp) throws IOException {
    var path = convertToNioFileAndCheck(file, false);
    var stream = !SafeWriteRequestor.shouldUseSafeWrite(requestor) ? Files.newOutputStream(path) :
                 requestor instanceof LargeFileWriteRequestor ? new PreemptiveSafeFileOutputStream(path) :
                 new SafeFileOutputStream(path);
    return new BufferedOutputStream(stream) {
      @Override
      public void close() throws IOException {
        super.close();
        if (timeStamp > 0 && Files.exists(path)) {
          Files.setLastModifiedTime(path, FileTime.fromMillis(timeStamp));
        }
      }
    };
  }
@Override
  public @NotNull OutputStream getOutputStream(@NotNull VirtualFile file, Object requestor, long modStamp, long timeStamp)