@Nullable
 public static String getRelativePath(
     @NotNull String basePath,
     @NotNull String filePath,
     final char separator,
     final boolean caseSensitive) {
   return FileUtilRt.getRelativePath(basePath, filePath, separator, caseSensitive);
 }
 @NotNull
 public static File createTempFile(
     @NonNls File dir,
     @NotNull @NonNls String prefix,
     @Nullable @NonNls String suffix,
     boolean create)
     throws IOException {
   return FileUtilRt.createTempFile(dir, prefix, suffix, create);
 }
 @NotNull
 public static File createTempDirectory(
     @NotNull File dir,
     @NotNull @NonNls String prefix,
     @Nullable @NonNls String suffix,
     boolean deleteOnExit)
     throws IOException {
   return FileUtilRt.createTempDirectory(dir, prefix, suffix, deleteOnExit);
 }
 @NotNull
 public static File createTempFile(@NotNull @NonNls String prefix, @Nullable @NonNls String suffix)
     throws IOException {
   return FileUtilRt.createTempFile(prefix, suffix);
 }
 @Nullable
 public static String getRelativePath(File base, File file) {
   return FileUtilRt.getRelativePath(base, file);
 }
 @NotNull
 public static String getNameWithoutExtension(@NotNull String name) {
   return FileUtilRt.getNameWithoutExtension(name);
 }
 public static boolean ensureCanCreateFile(@NotNull File file) {
   return FileUtilRt.ensureCanCreateFile(file);
 }
 public static boolean createDirectory(@NotNull File path) {
   return FileUtilRt.createDirectory(path);
 }
 @Nullable
 public static File getParentFile(@NotNull File file) {
   return FileUtilRt.getParentFile(file);
 }
 @NotNull
 public static String loadFile(@NotNull File file, boolean convertLineSeparators)
     throws IOException {
   return FileUtilRt.loadFile(file, convertLineSeparators);
 }
 @NotNull
 public static String loadFile(@NotNull File file) throws IOException {
   return FileUtilRt.loadFile(file);
 }
 public static void setExecutableAttribute(@NotNull String path, boolean executableFlag)
     throws IOException {
   FileUtilRt.setExecutableAttribute(path, executableFlag);
 }
 @NotNull
 public static File generateRandomTemporaryPath() throws IOException {
   return FileUtilRt.generateRandomTemporaryPath();
 }
 @TestOnly
 public static void resetCanonicalTempPathCache(final String tempPath) {
   FileUtilRt.resetCanonicalTempPathCache(tempPath);
 }
 @NotNull
 public static String getTempDirectory() {
   return FileUtilRt.getTempDirectory();
 }
 @NotNull
 public static List<String> loadLines(@NotNull BufferedReader reader) throws IOException {
   return FileUtilRt.loadLines(reader);
 }
 @NotNull
 public static byte[] loadBytes(@NotNull InputStream stream, int length) throws IOException {
   return FileUtilRt.loadBytes(stream, length);
 }
 @NotNull
 public static String loadFile(
     @NotNull File file, @Nullable @NonNls String encoding, boolean convertLineSeparators)
     throws IOException {
   return FileUtilRt.loadFile(file, encoding, convertLineSeparators);
 }
 public static boolean createParentDirs(@NotNull File file) {
   return FileUtilRt.createParentDirs(file);
 }
 @NotNull
 public static char[] loadFileText(@NotNull File file) throws IOException {
   return FileUtilRt.loadFileText(file);
 }
 public static boolean createIfDoesntExist(@NotNull File file) {
   return FileUtilRt.createIfNotExists(file);
 }
 @NotNull
 public static char[] loadFileText(@NotNull File file, @Nullable @NonNls String encoding)
     throws IOException {
   return FileUtilRt.loadFileText(file, encoding);
 }
 public static void copy(@NotNull InputStream inputStream, @NotNull OutputStream outputStream)
     throws IOException {
   FileUtilRt.copy(inputStream, outputStream);
 }
 @NotNull
 public static char[] loadText(@NotNull Reader reader, int length) throws IOException {
   return FileUtilRt.loadText(reader, length);
 }
 @NotNull
 public static String toSystemIndependentName(@NonNls @NotNull String aFileName) {
   return FileUtilRt.toSystemIndependentName(aFileName);
 }
 @NotNull
 public static List<String> loadLines(@NotNull File file) throws IOException {
   return FileUtilRt.loadLines(file);
 }
 @Nullable
 public static String getRelativePath(
     @NotNull String basePath, @NotNull String filePath, final char separator) {
   return FileUtilRt.getRelativePath(basePath, filePath, separator);
 }
 @NotNull
 public static List<String> loadLines(@NotNull String path) throws IOException {
   return FileUtilRt.loadLines(path);
 }
 /**
  * @deprecated this method returns extension converted to lower case, this may not be correct for
  *     case-sensitive FS. Use {@link FileUtilRt#getExtension(String)} instead to get the unchanged
  *     extension. If you need to check whether a file has a specified extension use {@link
  *     FileUtilRt#extensionEquals(String, String)}
  */
 @NotNull
 public static String getExtension(@NotNull String fileName) {
   return FileUtilRt.getExtension(fileName).toLowerCase();
 }
 @NotNull
 public static List<String> loadLines(@NotNull String path, @Nullable @NonNls String encoding)
     throws IOException {
   return FileUtilRt.loadLines(path, encoding);
 }