Class FileUtils

java.lang.Object
be.panako.util.FileUtils

public final class FileUtils
extends java.lang.Object
An utility class for file interaction.
Author:
Joren Six
  • Nested Class Summary

    Nested Classes
    Modifier and Type Class Description
    static interface  FileUtils.RowFilter  
  • Field Summary

    Fields
    Modifier and Type Field Description
    static FileUtils.RowFilter ACCEPT_ALL_ROWFILTER  
  • Method Summary

    Modifier and Type Method Description
    static void appendFile​(java.lang.String contents, java.lang.String name)
    Appends a string to a file on disk.
    static java.lang.String basename​(java.lang.String fileName)
    Returns the filename without path and without extension.
    static java.lang.String combine​(java.lang.String... path)
    Joins path elements using the systems path separator.
    static void copyFileFromJar​(java.lang.String source, java.lang.String target)
    Copy a file from a jar.
    static void cp​(java.lang.String source, java.lang.String target)
    Copy from source to target.
    static boolean createLock​(java.lang.String fileName)  
    static boolean exists​(java.lang.String fileName)
    Checks if a file exists.
    static java.lang.String expandHomeDir​(java.lang.String dir)  
    static java.lang.String extension​(java.lang.String fileName)
    Return the extension of a file.
    static int getIdentifier​(java.lang.String resource)
    Returns an identifier for a resource.
    static java.lang.String getLockFileName​(java.lang.String fileName)  
    static java.util.List<java.lang.String> glob​(java.lang.String directory, java.lang.String pattern, boolean recursive)
    Return a list of files in directory that satisfy pattern.
    static boolean isDirectory​(java.lang.String inputFile)
    Tests whether the file denoted by this abstract pathname is a directory.
    static boolean isFileLocked​(java.lang.String fileName)  
    static boolean mkdirs​(java.lang.String path)
    Creates a directory and parent directories if needed.
    static java.lang.String path​(java.lang.String fileName)
    Returns the path for a file.
    path("/home/user/random.jpg") == "/home/user"
    Uses the correct pathSeparator depending on the operating system.
    static java.util.List<java.lang.String> readColumnFromCSVData​(java.util.List<java.lang.String[]> data, int columnIndex, FileUtils.RowFilter filter)  
    static java.lang.String readFile​(java.lang.String name)
    Reads the contents of a file.
    static java.lang.String readFileFromJar​(java.lang.String path)
    Reads the contents of a file in a jar.
    static boolean rm​(java.lang.String fileName)
    Removes a file from disk.
    static java.lang.String runtimeDirectory()  
    static java.lang.String temporaryDirectory()  
    static void writeFile​(java.lang.String contents, java.lang.String name)
    Writes a file to disk.

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Method Details

    • temporaryDirectory

      public static java.lang.String temporaryDirectory()
    • expandHomeDir

      public static java.lang.String expandHomeDir​(java.lang.String dir)
    • isFileLocked

      public static boolean isFileLocked​(java.lang.String fileName)
    • createLock

      public static boolean createLock​(java.lang.String fileName)
    • getLockFileName

      public static java.lang.String getLockFileName​(java.lang.String fileName)
    • combine

      public static java.lang.String combine​(java.lang.String... path)
      Joins path elements using the systems path separator. e.g. "/tmp" and "com.random.test.wav" combined together should yield /tmp/com.random.test.wav on UNIX.
      Parameters:
      path - The path parts part.
      Returns:
      Each element from path joined by the systems path separator.
    • runtimeDirectory

      public static java.lang.String runtimeDirectory()
      Returns:
      The path where the program is executed.
    • writeFile

      public static void writeFile​(java.lang.String contents, java.lang.String name)
      Writes a file to disk. Uses the string contents as content. Failures are logged.
      Parameters:
      contents - The contents of the file.
      name - The name of the file to create.
    • appendFile

      public static void appendFile​(java.lang.String contents, java.lang.String name)
      Appends a string to a file on disk. Fails silently.
      Parameters:
      contents - The contents of the file.
      name - The name of the file to create.
    • readFile

      public static java.lang.String readFile​(java.lang.String name)
      Reads the contents of a file.
      Parameters:
      name - the name of the file to read
      Returns:
      the contents of the file if successful, an empty string otherwise.
    • readFileFromJar

      public static java.lang.String readFileFromJar​(java.lang.String path)
      Reads the contents of a file in a jar.
      Parameters:
      path - the path to read e.g. /package/name/here/help.html
      Returns:
      the contents of the file when successful, an empty string otherwise.
    • copyFileFromJar

      public static void copyFileFromJar​(java.lang.String source, java.lang.String target)
      Copy a file from a jar.
      Parameters:
      source - The path to read e.g. /package/name/here/help.html
      target - The target to save the file to.
    • readColumnFromCSVData

      public static java.util.List<java.lang.String> readColumnFromCSVData​(java.util.List<java.lang.String[]> data, int columnIndex, FileUtils.RowFilter filter)
    • glob

      public static java.util.List<java.lang.String> glob​(java.lang.String directory, java.lang.String pattern, boolean recursive)

      Return a list of files in directory that satisfy pattern. Pattern should be a valid regular expression not a 'unix glob pattern' so in stead of *.wav you could use .*\.wav

      E.g. in a directory home with the files com.test.txt, blaat.wav and foobar.wav the pattern .*\.wav matches blaat.wav and foobar.wav

      Parameters:
      directory - A readable directory.
      pattern - A valid regular expression.
      recursive - A boolean defining if directories should be traversed recursively.
      Returns:
      a list of filenames matching the pattern for directory.
      Throws:
      java.lang.Error - an error is thrown if the directory is not ... a directory.
      java.util.regex.PatternSyntaxException - Unchecked exception thrown to indicate a syntax error in a regular-expression pattern.
    • extension

      public static java.lang.String extension​(java.lang.String fileName)
      Return the extension of a file.
      Parameters:
      fileName - the file to get the extension for
      Returns:
      the extension. E.g. TXT or JPEG.
    • basename

      public static java.lang.String basename​(java.lang.String fileName)
      Returns the filename without path and without extension.
      Parameters:
      fileName - The name of the file.
      Returns:
      the file name without extension and path
    • path

      public static java.lang.String path​(java.lang.String fileName)
      Returns the path for a file.
      path("/home/user/random.jpg") == "/home/user"
      Uses the correct pathSeparator depending on the operating system. On windows c:/com.test/ is not c:\com.test\
      Parameters:
      fileName - The name of the file using correct path separators.
      Returns:
      The path of the file.
    • exists

      public static boolean exists​(java.lang.String fileName)
      Checks if a file exists.
      Parameters:
      fileName - the name of the file to check.
      Returns:
      true if and only if the file or directory denoted by this abstract pathname exists; false otherwise
    • mkdirs

      public static boolean mkdirs​(java.lang.String path)
      Creates a directory and parent directories if needed.
      Parameters:
      path - the path of the directory to create
      Returns:
      true if the directory was created (possibly with parent directories) , false otherwise
    • cp

      public static void cp​(java.lang.String source, java.lang.String target)
      Copy from source to target.
      Parameters:
      source - the source file.
      target - the target file.
    • rm

      public static boolean rm​(java.lang.String fileName)
      Removes a file from disk.
      Parameters:
      fileName - the file to remove
      Returns:
      true if and only if the file or directory is successfully deleted; false otherwise
    • isDirectory

      public static boolean isDirectory​(java.lang.String inputFile)
      Tests whether the file denoted by this abstract pathname is a directory.
      Parameters:
      inputFile - A pathname string.
      Returns:
      true if and only if the file denoted by this abstract pathname exists and is a directory; false otherwise.
    • getIdentifier

      public static int getIdentifier​(java.lang.String resource)
      Returns an identifier for a resource. It is either based on the hashCode of a string or on the name of the resource. If a resource is called e.g. 1855.mp3, the number part is used as identifier.
      Parameters:
      resource - The resource to get an identifier for.
      Returns:
      an identifier.