Class FileUtils

java.lang.Object
org.eclipse.aether.util.FileUtils

public final class FileUtils extends Object
A utility class to write files.
Since:
1.9.0
  • Field Details

    • IS_WINDOWS

      private static final boolean IS_WINDOWS
  • Constructor Details

    • FileUtils

      private FileUtils()
  • Method Details

    • newTempFile

      public static FileUtils.TempFile newTempFile() throws IOException
      Creates a FileUtils.TempFile instance and backing temporary file on file system. It will be located in the default temporary-file directory. Returned instance should be handled in try-with-resource construct and created temp file is removed (if exists) when returned instance is closed.

      This method uses Files.createTempFile(String, String, java.nio.file.attribute.FileAttribute[]) to create the temporary file on file system.

      Throws:
      IOException
    • newTempFile

      public static FileUtils.CollocatedTempFile newTempFile(Path file) throws IOException
      Creates a FileUtils.CollocatedTempFile instance for given file without backing file. The path will be located in same directory where given file is, and will reuse its name for generated (randomized) name. Returned instance should be handled in try-with-resource and created temp path is removed (if exists) when returned instance is closed. The FileUtils.CollocatedTempFile.move() makes possible to atomically replace passed in file with the processed content written into a file backing the FileUtils.CollocatedTempFile instance.

      The file nor it's parent directories have to exist. The parent directories are created if needed.

      This method uses Path.resolve(String) to create the temporary file path in passed in file parent directory, but it does NOT create backing file on file system.

      Throws:
      IOException
    • copy

      private static void copy(Path source, Path target) throws IOException
      On Windows we use pre-NIO2 way to copy files, as for some reason it works. Beat me why.
      Throws:
      IOException
    • writeFile

      public static void writeFile(Path target, FileUtils.FileWriter writer) throws IOException
      Writes file without backup.
      Parameters:
      target - that is the target file (must be file, the path must have parent).
      writer - the writer that will accept a Path to write content to.
      Throws:
      IOException - if at any step IO problem occurs.
    • writeFileWithBackup

      public static void writeFileWithBackup(Path target, FileUtils.FileWriter writer) throws IOException
      Writes file with backup copy (appends ".bak" extension).
      Parameters:
      target - that is the target file (must be file, the path must have parent).
      writer - the writer that will accept a Path to write content to.
      Throws:
      IOException - if at any step IO problem occurs.
    • writeFile

      private static void writeFile(Path target, FileUtils.FileWriter writer, boolean doBackup) throws IOException
      Utility method to write out file to disk in "atomic" manner, with optional backups (".bak") if needed. This ensures that no other thread or process will be able to read not fully written files. Finally, this methos may create the needed parent directories, if the passed in target parents does not exist.
      Parameters:
      target - that is the target file (must be an existing or non-existing file, the path must have parent).
      writer - the writer that will accept a Path to write content to.
      doBackup - if true, and target file is about to be overwritten, a ".bak" file with old contents will be created/overwritten.
      Throws:
      IOException - if at any step IO problem occurs.