|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.apache.commons.io.FileUtils
General file manipulation utilities.
Facilities are provided in the following areas:
Origin of code: Excalibur, Alexandria, Commons-Utils
Field Summary | |
static java.io.File[] |
EMPTY_FILE_ARRAY
An empty array of type File . |
static long |
ONE_GB
The number of bytes in a gigabyte. |
static long |
ONE_KB
The number of bytes in a kilobyte. |
static long |
ONE_MB
The number of bytes in a megabyte. |
Constructor Summary | |
FileUtils()
Instances should NOT be constructed in standard programming. |
Method Summary | |
static java.lang.String |
byteCountToDisplaySize(long size)
Returns a human-readable version of the file size (original is in bytes). |
static void |
cleanDirectory(java.io.File directory)
Clean a directory without deleting it. |
private static void |
cleanDirectoryOnExit(java.io.File directory)
Clean a directory without deleting it. |
static boolean |
contentEquals(java.io.File file1,
java.io.File file2)
Compare the contents of two files to determine if they are equal or not. |
static java.io.File[] |
convertFileCollectionToFileArray(java.util.Collection files)
Converts a Collection containing java.io.File instanced into array representation. |
static void |
copyDirectory(java.io.File srcDir,
java.io.File destDir)
Copies a whole directory to a new location preserving the file dates. |
static void |
copyDirectory(java.io.File srcDir,
java.io.File destDir,
boolean preserveFileDate)
Copies a whole directory to a new location. |
static void |
copyFile(java.io.File srcFile,
java.io.File destFile)
Copies a file to a new location preserving the file date. |
static void |
copyFile(java.io.File srcFile,
java.io.File destFile,
boolean preserveFileDate)
Copies a file to a new location. |
static void |
copyFileToDirectory(java.io.File srcFile,
java.io.File destDir)
Copies a file to a directory preserving the file date. |
static void |
copyURLToFile(java.net.URL source,
java.io.File destination)
Copies bytes from the URL source to a file
destination . |
static void |
deleteDirectory(java.io.File directory)
Recursively delete a directory. |
private static void |
deleteDirectoryOnExit(java.io.File directory)
Recursively schedule directory for deletion on JVM exit. |
private static void |
doCopyDirectory(java.io.File srcDir,
java.io.File destDir,
boolean preserveFileDate)
Internal copy directory method. |
private static void |
doCopyFile(java.io.File srcFile,
java.io.File destFile,
boolean preserveFileDate)
Internal copy file method. |
static void |
forceDelete(java.io.File file)
Delete a file. |
static void |
forceDeleteOnExit(java.io.File file)
Schedule a file to be deleted when JVM exits. |
static void |
forceMkdir(java.io.File directory)
Make a directory, including any necessary but nonexistent parent directories. |
private static void |
innerListFiles(java.util.Collection files,
java.io.File directory,
IOFileFilter filter)
Finds files within a given directory (and optionally its subdirectories). |
static boolean |
isFileNewer(java.io.File file,
java.util.Date date)
Tests if the specified File is newer than the specified
Date . |
static boolean |
isFileNewer(java.io.File file,
java.io.File reference)
Tests if the specified File is newer than the reference
File . |
static boolean |
isFileNewer(java.io.File file,
long timeMillis)
Tests if the specified File is newer than the specified
time reference. |
static java.util.Collection |
listFiles(java.io.File directory,
IOFileFilter fileFilter,
IOFileFilter dirFilter)
Finds files within a given directory (and optionally its subdirectories). |
static java.util.Collection |
listFiles(java.io.File directory,
java.lang.String[] extensions,
boolean recursive)
Finds files within a given directory (and optionally its subdirectories) which match an array of extensions. |
static byte[] |
readFileToByteArray(java.io.File file)
Reads the contents of a file into a byte array. |
static java.lang.String |
readFileToString(java.io.File file,
java.lang.String encoding)
Reads the contents of a file into a String. |
static java.util.List |
readLines(java.io.File file,
java.lang.String encoding)
Reads the contents of a file line by line to a List of Strings. |
static long |
sizeOfDirectory(java.io.File directory)
Recursively count size of a directory (sum of the length of all files). |
static java.io.File |
toFile(java.net.URL url)
Convert from a URL to a File . |
static java.io.File[] |
toFiles(java.net.URL[] urls)
Converts each of an array of URL to a File . |
private static java.lang.String[] |
toSuffixes(java.lang.String[] extensions)
Converts an array of file extensions to suffixes for use with IOFileFilters. |
static void |
touch(java.io.File file)
Implements the same behaviour as the "touch" utility on Unix. |
static java.net.URL[] |
toURLs(java.io.File[] files)
Converts each of an array of File to a URL . |
static boolean |
waitFor(java.io.File file,
int seconds)
Waits for NFS to propagate a file creation, imposing a timeout. |
static void |
writeByteArrayToFile(java.io.File file,
byte[] data)
Writes a byte array to a file creating the file if it does not exist. |
static void |
writeLines(java.io.File file,
java.lang.String encoding,
java.util.Collection lines)
Writes the toString() value of each item in a collection to
the specified File line by line. |
static void |
writeLines(java.io.File file,
java.lang.String encoding,
java.util.Collection lines,
java.lang.String lineEnding)
Writes the toString() value of each item in a collection to
the specified File line by line. |
static void |
writeStringToFile(java.io.File file,
java.lang.String data,
java.lang.String encoding)
Writes a String to a file creating the file if it does not exist. |
Methods inherited from class java.lang.Object |
|
Field Detail |
public static final long ONE_KB
public static final long ONE_MB
public static final long ONE_GB
public static final java.io.File[] EMPTY_FILE_ARRAY
File
.Constructor Detail |
public FileUtils()
Method Detail |
public static java.lang.String byteCountToDisplaySize(long size)
size
- The number of bytes.public static void touch(java.io.File file) throws java.io.IOException
file
- the File to touchjava.io.IOException
- If an I/O problem occursprivate static void innerListFiles(java.util.Collection files, java.io.File directory, IOFileFilter filter)
Finds files within a given directory (and optionally its subdirectories). All files found are filtered by an IOFileFilter.
files
- the collection of files found.directory
- the directory to search in.filter
- the filter to apply to files and directories.public static java.io.File[] convertFileCollectionToFileArray(java.util.Collection files)
files
- a Collection containing java.io.File instancespublic static java.util.Collection listFiles(java.io.File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)
Finds files within a given directory (and optionally its subdirectories). All files found are filtered by an IOFileFilter.
If your search should recurse into subdirectories you can pass in an IOFileFilter for directories. You don't need to bind a DirectoryFileFilter (via logical AND) to this filter. This method does that for you.
An example: If you want to search through all directories called
"temp" you pass in FileFilterUtils.NameFileFilter("temp")
Another common usage of this method is find files in a directory
tree but ignoring the directories generated CVS. You can simply pass
in FileFilterUtils.makeCVSAware(null)
.
directory
- the directory to search infileFilter
- filter to apply when finding files.dirFilter
- optional filter to apply when finding subdirectories.
If this parameter is null, subdirectories will not be included in the
search. Use TrueFileFilter.INSTANCE to match all directories.FileFilterUtils
,
NameFileFilter
private static java.lang.String[] toSuffixes(java.lang.String[] extensions)
extensions
- an array of extensions. Format: {"java", "xml"}public static java.util.Collection listFiles(java.io.File directory, java.lang.String[] extensions, boolean recursive)
directory
- the directory to search inextensions
- an array of extensions, ex. {"java","xml"}. If this
parameter is null, all files are returned.recursive
- If true all subdirectories are searched, too.public static boolean contentEquals(java.io.File file1, java.io.File file2) throws java.io.IOException
Compare the contents of two files to determine if they are equal or not.
Code origin: Avalon
file1
- the first filefile2
- the second filejava.io.IOException
- in case of an I/O errorpublic static java.io.File toFile(java.net.URL url)
URL
to a File
.
From version 1.1 this method will decode the URL.
Syntax such as file:///my%20docs/file.txt
will be
correctly decoded to /my docs/file.txt
.
url
- the file URL to convert, null returns nullFile
object, or null
if the URL's protocol is not file
java.lang.IllegalArgumentException
- if the file is incorrectly encodedpublic static java.io.File[] toFiles(java.net.URL[] urls)
URL
to a File
.
Returns an array of the same size as the input. If the input is null, an empty array is returned. If the input contains null, the output array contains null at the same index.
This method will decode the URL.
Syntax such as file:///my%20docs/file.txt
will be
correctly decoded to /my docs/file.txt
.
urls
- the file URLs to convert, null returns empty arrayjava.lang.IllegalArgumentException
- if any file is not a URL filejava.lang.IllegalArgumentException
- if any file is incorrectly encodedpublic static java.net.URL[] toURLs(java.io.File[] files) throws java.io.IOException
File
to a URL
.
Returns an array of the same size as the input.
files
- the files to convertjava.io.IOException
- if a file cannot be convertedpublic static void copyFileToDirectory(java.io.File srcFile, java.io.File destDir) throws java.io.IOException
This method copies the contents of the specified source file to a file of the same name in the specified destination directory. The destination directory is created if it does not exist. If the destination file exists, then this method will overwrite it.
srcFile
- an existing file to copy, must not be nulldestDir
- the directory to place the copy in, must not be nullNullPointerException
- if source or destination is nulljava.io.IOException
- if source or destination is invalidjava.io.IOException
- if an IO error occurs during copyingcopyFile(File, File, boolean)
public static void copyFile(java.io.File srcFile, java.io.File destFile) throws java.io.IOException
This method copies the contents of the specified source file to the specified destination file. The directory holding the destination file is created if it does not exist. If the destination file exists, then this method will overwrite it.
srcFile
- an existing file to copy, must not be nulldestFile
- the new file, must not be nullNullPointerException
- if source or destination is nulljava.io.IOException
- if source or destination is invalidjava.io.IOException
- if an IO error occurs during copyingcopyFileToDirectory(java.io.File, java.io.File)
public static void copyFile(java.io.File srcFile, java.io.File destFile, boolean preserveFileDate) throws java.io.IOException
This method copies the contents of the specified source file to the specified destination file. The directory holding the destination file is created if it does not exist. If the destination file exists, then this method will overwrite it.
srcFile
- an existing file to copy, must not be nulldestFile
- the new file, must not be nullpreserveFileDate
- true if the file date of the copy
should be the same as the originalNullPointerException
- if source or destination is nulljava.io.IOException
- if source or destination is invalidjava.io.IOException
- if an IO error occurs during copyingcopyFileToDirectory(java.io.File, java.io.File)
private static void doCopyFile(java.io.File srcFile, java.io.File destFile, boolean preserveFileDate) throws java.io.IOException
srcFile
- the validated source file, not nulldestFile
- the validated destination file, not nullpreserveFileDate
- whether to preserve the file datejava.io.IOException
- if an error occurspublic static void copyDirectory(java.io.File srcDir, java.io.File destDir) throws java.io.IOException
This method copies the specified directory and all its child directories and files to the specified destination. The destination is the new location and name of the directory. If it already exists, the contents will be overwritten.
srcDir
- an existing directory to copy, must not be nulldestDir
- the new directory, must not be nullNullPointerException
- if source or destination is nulljava.io.IOException
- if source or destination is invalidjava.io.IOException
- if an IO error occurs during copyingpublic static void copyDirectory(java.io.File srcDir, java.io.File destDir, boolean preserveFileDate) throws java.io.IOException
This method copies the contents of the specified source directory to within the specified destination directory. The destination directory is created if it does not exist. If the destination directory did exist, then this method merges the source with the destination, with the source taking precedence.
srcDir
- an existing directory to copy, must not be nulldestDir
- the new directory, must not be nullpreserveFileDate
- true if the file date of the copy
should be the same as the originalNullPointerException
- if source or destination is nulljava.io.IOException
- if source or destination is invalidjava.io.IOException
- if an IO error occurs during copyingprivate static void doCopyDirectory(java.io.File srcDir, java.io.File destDir, boolean preserveFileDate) throws java.io.IOException
srcDir
- the validated source directory, not nulldestDir
- the validated destination directory, not nullpreserveFileDate
- whether to preserve the file datejava.io.IOException
- if an error occurspublic static void copyURLToFile(java.net.URL source, java.io.File destination) throws java.io.IOException
source
to a file
destination
. The directories up to destination
will be created if they don't already exist. destination
will be overwritten if it already exists.source
- A URL
to copy bytes from.destination
- A non-directory File
to write bytes to
(possibly overwriting).java.io.IOException
- if
source
URL cannot be openeddestination
cannot be written topublic static void deleteDirectory(java.io.File directory) throws java.io.IOException
directory
- directory to deletejava.io.IOException
- in case deletion is unsuccessfulpublic static void cleanDirectory(java.io.File directory) throws java.io.IOException
directory
- directory to cleanjava.io.IOException
- in case cleaning is unsuccessfulpublic static boolean waitFor(java.io.File file, int seconds)
file
- The fileseconds
- The maximum time in seconds to wait.public static java.lang.String readFileToString(java.io.File file, java.lang.String encoding) throws java.io.IOException
Reads the contents of a file into a String.
There is no readFileToString method without encoding parameter because the default encoding can differ between platforms and therefore results in inconsistent results.
file
- the file to readencoding
- the encoding to use, null means platform defaultjava.io.IOException
- in case of an I/O errorjava.io.UnsupportedEncodingException
- if the encoding is not supported by the VMpublic static byte[] readFileToByteArray(java.io.File file) throws java.io.IOException
Reads the contents of a file into a byte array.
file
- the file to readjava.io.IOException
- in case of an I/O errorpublic static java.util.List readLines(java.io.File file, java.lang.String encoding) throws java.io.IOException
Reads the contents of a file line by line to a List of Strings.
There is no readLines method without encoding parameter because the default encoding can differ between platforms and therefore results in inconsistent results.
file
- the file to readencoding
- the encoding to use, null means platform defaultjava.io.IOException
- in case of an I/O errorjava.io.UnsupportedEncodingException
- if the encoding is not supported by the VMpublic static void writeStringToFile(java.io.File file, java.lang.String data, java.lang.String encoding) throws java.io.IOException
Writes a String to a file creating the file if it does not exist.
There is no writeStringToFile method without encoding parameter because the default encoding can differ between platforms and therefore results in inconsistent results.
file
- the file to writedata
- the content to write to the fileencoding
- the encoding to use, null means platform defaultjava.io.IOException
- in case of an I/O errorjava.io.UnsupportedEncodingException
- if the encoding is not supported by the VMpublic static void writeByteArrayToFile(java.io.File file, byte[] data) throws java.io.IOException
Writes a byte array to a file creating the file if it does not exist.
file
- the file to write todata
- the content to write to the filejava.io.IOException
- in case of an I/O errorpublic static void writeLines(java.io.File file, java.lang.String encoding, java.util.Collection lines) throws java.io.IOException
Writes the toString()
value of each item in a collection to
the specified File
line by line.
The specified character encoding and the default line ending will be used.
There is no writeLines method without encoding parameter because the default encoding can differ between platforms and therefore results in inconsistent results.
file
- the file to write toencoding
- the encoding to use, null means platform defaultlines
- the lines to write, null entries produce blank linesjava.io.IOException
- in case of an I/O errorjava.io.UnsupportedEncodingException
- if the encoding is not supported by the VMpublic static void writeLines(java.io.File file, java.lang.String encoding, java.util.Collection lines, java.lang.String lineEnding) throws java.io.IOException
Writes the toString()
value of each item in a collection to
the specified File
line by line.
The specified character encoding and the line ending will be used.
There is no writeLines method without encoding parameter because the default encoding can differ between platforms and therefore results in inconsistent results.
file
- the file to write toencoding
- the encoding to use, null means platform defaultlines
- the lines to write, null entries produce blank lineslineEnding
- the line separator to use, null is system defaultjava.io.IOException
- in case of an I/O errorjava.io.UnsupportedEncodingException
- if the encoding is not supported by the VMpublic static void forceDelete(java.io.File file) throws java.io.IOException
Delete a file. If file is a directory, delete it and all sub-directories.
The difference between File.delete() and this method are:
file
- file or directory to delete.java.io.IOException
- in case deletion is unsuccessfulpublic static void forceDeleteOnExit(java.io.File file) throws java.io.IOException
file
- file or directory to delete.java.io.IOException
- in case deletion is unsuccessfulprivate static void deleteDirectoryOnExit(java.io.File directory) throws java.io.IOException
directory
- directory to delete.java.io.IOException
- in case deletion is unsuccessfulprivate static void cleanDirectoryOnExit(java.io.File directory) throws java.io.IOException
directory
- directory to clean.java.io.IOException
- in case cleaning is unsuccessfulpublic static void forceMkdir(java.io.File directory) throws java.io.IOException
directory
- directory to createjava.io.IOException
- if the directory cannot be created.public static long sizeOfDirectory(java.io.File directory)
directory
- directory to inspectpublic static boolean isFileNewer(java.io.File file, java.io.File reference)
File
is newer than the reference
File
.file
- the File
of which the modification date must
be compared.reference
- the File
of which the modification date
is used.File
exists and has been modified more
recently than the reference File
.public static boolean isFileNewer(java.io.File file, java.util.Date date)
File
is newer than the specified
Date
.file
- the File
of which the modification date must be
compared.date
- the date referenceFile
exists and has been modified after
the given Date
.public static boolean isFileNewer(java.io.File file, long timeMillis)
File
is newer than the specified
time reference.file
- the File
of which the modification date must
be compared.timeMillis
- the time reference measured in milliseconds since the
epoch (00:00:00 GMT, January 1, 1970)File
exists and has been modified after
the given time reference.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |