Class FileUtils


  • public class FileUtils
    extends java.lang.Object
    This utility class contains utility functions that use the file system abstraction.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.nio.file.attribute.FileAttribute<?>[] NO_ATTRIBUTES
      No file attributes.
      static java.util.Set<? extends java.nio.file.OpenOption> R
      StandardOpenOption.READ.
      static java.util.Set<? extends java.nio.file.OpenOption> RW
      StandardOpenOption.READ, StandardOpenOption.WRITE, and StandardOpenOption.CREATE.
      static java.util.Set<? extends java.nio.file.OpenOption> RWD
      StandardOpenOption.READ, StandardOpenOption.WRITE, StandardOpenOption.CREATE, and StandardOpenOption.DSYNC.
      static java.util.Set<? extends java.nio.file.OpenOption> RWS
      StandardOpenOption.READ, StandardOpenOption.WRITE, StandardOpenOption.CREATE, and StandardOpenOption.SYNC.
    • Constructor Summary

      Constructors 
      Constructor Description
      FileUtils()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean canWrite​(java.lang.String fileName)
      Check if the file is writable.
      static void createDirectories​(java.lang.String dir)
      Create the directory and all required parent directories.
      static void createDirectory​(java.lang.String directoryName)
      Create a directory (all required parent directories must already exist).
      static boolean createFile​(java.lang.String fileName)
      Create a new file.
      static java.lang.String createTempFile​(java.lang.String prefix, java.lang.String suffix, boolean inTempDir)
      Create a new temporary file.
      static void delete​(java.lang.String path)
      Delete a file or directory if it exists.
      static void deleteRecursive​(java.lang.String path, boolean tryOnly)
      Delete a directory or file and all subdirectories and files.
      static boolean exists​(java.lang.String fileName)
      Checks if a file exists.
      static java.lang.String getName​(java.lang.String path)
      Get the file or directory name (the last element of the path).
      static java.lang.String getParent​(java.lang.String fileName)
      Get the parent directory of a file or directory.
      static boolean isAbsolute​(java.lang.String fileName)
      Check if the file name includes a path.
      static boolean isDirectory​(java.lang.String fileName)
      Check if it is a file or a directory.
      static long lastModified​(java.lang.String fileName)
      Get the last modified date of a file.
      static java.util.Set<? extends java.nio.file.OpenOption> modeToOptions​(java.lang.String mode)
      Convert the string representation to a set.
      static void move​(java.lang.String source, java.lang.String target)
      Rename a file if this is allowed.
      static void moveAtomicReplace​(java.lang.String source, java.lang.String target)
      Rename a file if this is allowed, and try to atomically replace an existing file.
      static java.io.BufferedReader newBufferedReader​(java.lang.String fileName, java.nio.charset.Charset charset)
      Create a buffered reader to read from the file.
      static java.util.List<java.lang.String> newDirectoryStream​(java.lang.String path)
      List the files and directories in the given directory.
      static java.io.InputStream newInputStream​(java.lang.String fileName)
      Create an input stream to read from the file.
      static java.io.OutputStream newOutputStream​(java.lang.String fileName, boolean append)
      Create an output stream to write into the file.
      static java.nio.channels.FileChannel open​(java.lang.String fileName, java.lang.String mode)
      Open a random access file object.
      static void readFully​(java.nio.channels.FileChannel channel, java.nio.ByteBuffer dst)
      Fully read from the file.
      static boolean setReadOnly​(java.lang.String fileName)
      Disable the ability to write.
      static long size​(java.lang.String fileName)
      Get the size of a file in bytes This method is similar to Java 7 java.nio.file.attribute.Attributes.
      static java.lang.String toRealPath​(java.lang.String fileName)
      Get the canonical file or directory name.
      static boolean tryDelete​(java.lang.String path)
      Try to delete a file or directory (ignoring errors).
      static java.lang.String unwrap​(java.lang.String fileName)
      Get the unwrapped file name (without wrapper prefixes if wrapping / delegating file systems are used).
      static void writeFully​(java.nio.channels.FileChannel channel, java.nio.ByteBuffer src)
      Fully write to the file.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • R

        public static final java.util.Set<? extends java.nio.file.OpenOption> R
        StandardOpenOption.READ.
      • RW

        public static final java.util.Set<? extends java.nio.file.OpenOption> RW
        StandardOpenOption.READ, StandardOpenOption.WRITE, and StandardOpenOption.CREATE.
      • RWS

        public static final java.util.Set<? extends java.nio.file.OpenOption> RWS
        StandardOpenOption.READ, StandardOpenOption.WRITE, StandardOpenOption.CREATE, and StandardOpenOption.SYNC.
      • RWD

        public static final java.util.Set<? extends java.nio.file.OpenOption> RWD
        StandardOpenOption.READ, StandardOpenOption.WRITE, StandardOpenOption.CREATE, and StandardOpenOption.DSYNC.
      • NO_ATTRIBUTES

        public static final java.nio.file.attribute.FileAttribute<?>[] NO_ATTRIBUTES
        No file attributes.
    • Constructor Detail

      • FileUtils

        public FileUtils()
    • Method Detail

      • exists

        public static boolean exists​(java.lang.String fileName)
        Checks if a file exists. This method is similar to Java 7 java.nio.file.Path.exists.
        Parameters:
        fileName - the file name
        Returns:
        true if it exists
      • createDirectory

        public static void createDirectory​(java.lang.String directoryName)
        Create a directory (all required parent directories must already exist). This method is similar to Java 7 java.nio.file.Path.createDirectory.
        Parameters:
        directoryName - the directory name
      • createFile

        public static boolean createFile​(java.lang.String fileName)
        Create a new file. This method is similar to Java 7 java.nio.file.Path.createFile, but returns false instead of throwing a exception if the file already existed.
        Parameters:
        fileName - the file name
        Returns:
        true if creating was successful
      • delete

        public static void delete​(java.lang.String path)
        Delete a file or directory if it exists. Directories may only be deleted if they are empty. This method is similar to Java 7 java.nio.file.Path.deleteIfExists.
        Parameters:
        path - the file or directory name
      • toRealPath

        public static java.lang.String toRealPath​(java.lang.String fileName)
        Get the canonical file or directory name. This method is similar to Java 7 java.nio.file.Path.toRealPath.
        Parameters:
        fileName - the file name
        Returns:
        the normalized file name
      • getParent

        public static java.lang.String getParent​(java.lang.String fileName)
        Get the parent directory of a file or directory. This method returns null if there is no parent. This method is similar to Java 7 java.nio.file.Path.getParent.
        Parameters:
        fileName - the file or directory name
        Returns:
        the parent directory name
      • isAbsolute

        public static boolean isAbsolute​(java.lang.String fileName)
        Check if the file name includes a path. This method is similar to Java 7 java.nio.file.Path.isAbsolute.
        Parameters:
        fileName - the file name
        Returns:
        if the file name is absolute
      • move

        public static void move​(java.lang.String source,
                                java.lang.String target)
        Rename a file if this is allowed. This method is similar to Java 7 java.nio.file.Files.move.
        Parameters:
        source - the old fully qualified file name
        target - the new fully qualified file name
      • moveAtomicReplace

        public static void moveAtomicReplace​(java.lang.String source,
                                             java.lang.String target)
        Rename a file if this is allowed, and try to atomically replace an existing file. This method is similar to Java 7 java.nio.file.Files.move.
        Parameters:
        source - the old fully qualified file name
        target - the new fully qualified file name
      • getName

        public static java.lang.String getName​(java.lang.String path)
        Get the file or directory name (the last element of the path). This method is similar to Java 7 java.nio.file.Path.getName.
        Parameters:
        path - the directory and file name
        Returns:
        just the file name
      • newDirectoryStream

        public static java.util.List<java.lang.String> newDirectoryStream​(java.lang.String path)
        List the files and directories in the given directory. This method is similar to Java 7 java.nio.file.Path.newDirectoryStream.
        Parameters:
        path - the directory
        Returns:
        the list of fully qualified file names
      • lastModified

        public static long lastModified​(java.lang.String fileName)
        Get the last modified date of a file. This method is similar to Java 7 java.nio.file.attribute.Attributes. readBasicFileAttributes(file).lastModified().toMillis()
        Parameters:
        fileName - the file name
        Returns:
        the last modified date
      • size

        public static long size​(java.lang.String fileName)
        Get the size of a file in bytes This method is similar to Java 7 java.nio.file.attribute.Attributes. readBasicFileAttributes(file).size()
        Parameters:
        fileName - the file name
        Returns:
        the size in bytes
      • isDirectory

        public static boolean isDirectory​(java.lang.String fileName)
        Check if it is a file or a directory. java.nio.file.attribute.Attributes. readBasicFileAttributes(file).isDirectory()
        Parameters:
        fileName - the file or directory name
        Returns:
        true if it is a directory
      • open

        public static java.nio.channels.FileChannel open​(java.lang.String fileName,
                                                         java.lang.String mode)
                                                  throws java.io.IOException
        Open a random access file object. This method is similar to Java 7 java.nio.channels.FileChannel.open.
        Parameters:
        fileName - the file name
        mode - the access mode. Supported are r, rw, rws, rwd
        Returns:
        the file object
        Throws:
        java.io.IOException - on failure
      • newInputStream

        public static java.io.InputStream newInputStream​(java.lang.String fileName)
                                                  throws java.io.IOException
        Create an input stream to read from the file. This method is similar to Java 7 java.nio.file.Files.newInputStream().
        Parameters:
        fileName - the file name
        Returns:
        the input stream
        Throws:
        java.io.IOException - on failure
      • newBufferedReader

        public static java.io.BufferedReader newBufferedReader​(java.lang.String fileName,
                                                               java.nio.charset.Charset charset)
                                                        throws java.io.IOException
        Create a buffered reader to read from the file. This method is similar to java.nio.file.Files.newBufferedReader().
        Parameters:
        fileName - the file name
        charset - the charset
        Returns:
        the buffered reader
        Throws:
        java.io.IOException - on failure
      • newOutputStream

        public static java.io.OutputStream newOutputStream​(java.lang.String fileName,
                                                           boolean append)
                                                    throws java.io.IOException
        Create an output stream to write into the file. This method is similar to java.nio.file.Files.newOutputStream().
        Parameters:
        fileName - the file name
        append - if true, the file will grow, if false, the file will be truncated first
        Returns:
        the output stream
        Throws:
        java.io.IOException - on failure
      • canWrite

        public static boolean canWrite​(java.lang.String fileName)
        Check if the file is writable. This method is similar to Java 7 java.nio.file.Path.checkAccess(AccessMode.WRITE)
        Parameters:
        fileName - the file name
        Returns:
        if the file is writable
      • setReadOnly

        public static boolean setReadOnly​(java.lang.String fileName)
        Disable the ability to write. The file can still be deleted afterwards.
        Parameters:
        fileName - the file name
        Returns:
        true if the call was successful
      • unwrap

        public static java.lang.String unwrap​(java.lang.String fileName)
        Get the unwrapped file name (without wrapper prefixes if wrapping / delegating file systems are used).
        Parameters:
        fileName - the file name
        Returns:
        the unwrapped
      • deleteRecursive

        public static void deleteRecursive​(java.lang.String path,
                                           boolean tryOnly)
        Delete a directory or file and all subdirectories and files.
        Parameters:
        path - the path
        tryOnly - whether errors should be ignored
      • createDirectories

        public static void createDirectories​(java.lang.String dir)
        Create the directory and all required parent directories.
        Parameters:
        dir - the directory name
      • tryDelete

        public static boolean tryDelete​(java.lang.String path)
        Try to delete a file or directory (ignoring errors).
        Parameters:
        path - the file or directory name
        Returns:
        true if it worked
      • createTempFile

        public static java.lang.String createTempFile​(java.lang.String prefix,
                                                      java.lang.String suffix,
                                                      boolean inTempDir)
                                               throws java.io.IOException
        Create a new temporary file.
        Parameters:
        prefix - the prefix of the file name (including directory name if required)
        suffix - the suffix
        inTempDir - if the file should be stored in the temporary directory
        Returns:
        the name of the created file
        Throws:
        java.io.IOException - on failure
      • readFully

        public static void readFully​(java.nio.channels.FileChannel channel,
                                     java.nio.ByteBuffer dst)
                              throws java.io.IOException
        Fully read from the file. This will read all remaining bytes, or throw an EOFException if not successful.
        Parameters:
        channel - the file channel
        dst - the byte buffer
        Throws:
        java.io.IOException - on failure
      • writeFully

        public static void writeFully​(java.nio.channels.FileChannel channel,
                                      java.nio.ByteBuffer src)
                               throws java.io.IOException
        Fully write to the file. This will write all remaining bytes.
        Parameters:
        channel - the file channel
        src - the byte buffer
        Throws:
        java.io.IOException - on failure
      • modeToOptions

        public static java.util.Set<? extends java.nio.file.OpenOption> modeToOptions​(java.lang.String mode)
        Convert the string representation to a set.
        Parameters:
        mode - the mode as a string
        Returns:
        the set