Commons IO
**********
Links
=====
- `Commons IO`_
- `artima - Forum Entry - Apache Releases New Version of Commons IO`_
- `My Top List of Java Tools`_
Maven 2 Dependency
==================
::
commons-io
commons-io
1.4
Directory Walker
================
Sample project in Subversion: sample-commons-directory-walker_
Note: Also see *FileUtils*, *List Files* below.
FilenameUtils
=============
Extension
---------
getExtension_
::
import org.apache.commons.io.FilenameUtils;
String extension = FilenameUtils.getExtension(file.getName());
Name
----
getName_
Gets the name minus the path from a full filename.
::
import org.apache.commons.io.FilenameUtils;
final String fileName = FilenameUtils.getName(file.getAbsolutePath());
getBaseName_
Gets the base name, minus the full path and extension, from a full filename.
::
import org.apache.commons.io.FilenameUtils;
final String name = FilenameUtils.getBaseName(file.getAbsolutePath());
FileUtils
=========
Import:
::
import org.apache.commons.io.FileUtils;
Copy Folder (and it's contents)
-------------------------------
``copyDirectory``
copyDirectory_
::
import org.apache.commons.io.FileUtils;
FileUtils.copyDirectory(sourceFolder, destinationFolder);
**Note**: To ignore svn folders:
::
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.FileFilterUtils;
FileUtils.copyDirectory(configFolder, applicationConfigFolder,
FileFilterUtils.makeSVNAware(null));
Copy File
---------
``copyFile``
copyFile_
::
FileUtils.copyFile(sourceFile, destinationFile);
Copy File to Folder
-------------------
``copyFileToDirectory``
copyFileToDirectory_
::
FileUtils.copyFileToDirectory(fromFile, toFolder);
Copy Folder
-----------
::
// copy one folder and its contents into another
FileUtils.copyDirectoryToDirectory(file1, file2);
Delete Folder
-------------
deleteDirectory_
::
FileUtils.deleteDirectory(folder);
Line Iterator
-------------
::
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
LineIterator it = IOUtils.lineIterator(reader);
String line;
while (it.hasNext()) {
line = it.nextLine();
}
}
} finally {
IOUtils.closeQuietly(reader);
}
List Files
----------
::
// return the list of xml and text files in the specified folder and any subfolders
Collection c1 = FileUtils.listFiles(file1, { "xml", "txt" }, true);
Note: I haven't tested this.
Move File
---------
moveFileToDirectory_:
::
final File moveTo = new File(file.getParent(), "done");
FileUtils.moveFileToDirectory(file, moveTo, true);
``true`` tells the ``moveFileToDirectory`` to create the destination
folder.
Read a File
-----------
::
import org.apache.commons.io.FileUtils;
return FileUtils.readFileToString(new File("file_name.txt"));
Touch
-----
::
import org.apache.commons.io.FileUtils;
FileUtils.touch(new File(fileName));
IOUtils
=======
IOUtils_
closeQuietly
------------
Close a stream ignoring nulls and exceptions:
::
InputStream is = null;
try {
is = new BufferedInputStream(new FileInputStream(new File(resource
.getPath())));
} finally {
IOUtils.closeQuietly(is);
}
readLines
---------
readLines_.
Get the contents of a file as a list of Strings, one entry per line:
::
BufferedReader in = null;
try {
in = new BufferedReader(new FileReader(fileName));
final List result = IOUtils.readLines(in);
return result;
} finally {
IOUtils.closeQuietly(in);
}
.. _`Commons IO`: http://jakarta.apache.org/commons/io/
.. _`artima - Forum Entry - Apache Releases New Version of Commons IO`: http://www.artima.com/forums/flat.jsp?forum=276&thread=196336
.. _`My Top List of Java Tools`: http://java.dzone.com/articles/my-top-list-java-tools
.. _sample-commons-directory-walker: http://toybox/hg/sample/file/tip/java/sample-commons-directory-walker
.. _getExtension: http://jakarta.apache.org/commons/io/api-1.3/org/apache/commons/io/FilenameUtils.html#getExtension(java.lang.String)
.. _getName: http://commons.apache.org/io/api-1.3/org/apache/commons/io/FilenameUtils.html#getName(java.lang.String)
.. _getBaseName: http://commons.apache.org/io/api-1.3/org/apache/commons/io/FilenameUtils.html#getBaseName(java.lang.String)
.. _copyDirectory: http://jakarta.apache.org/commons/io/api-release/org/apache/commons/io/FileUtils.html#copyDirectory(java.io.File,%20java.io.File)
.. _copyFile: http://jakarta.apache.org/commons/io/api-release/org/apache/commons/io/FileUtils.html#copyFile(java.io.File,%20java.io.File)
.. _copyFileToDirectory: http://jakarta.apache.org/commons/io/api-release/org/apache/commons/io/FileUtils.html#copyFileToDirectory(java.io.File,%20java.io.File)
.. _deleteDirectory: http://jakarta.apache.org/commons/io/api-release/org/apache/commons/io/FileUtils.html#deleteDirectory(java.io.File)
.. _moveFileToDirectory: {http://commons.apache.org/io/api-release/org/apache/commons/io/FileUtils.html#moveFileToDirectory(java.io.File, java.io.File, boolean)
.. _IOUtils: http://commons.apache.org/io/api-release/org/apache/commons/io/IOUtils.html
.. _readLines: http://commons.apache.org/io/api-release/org/apache/commons/io/IOUtils.html#readLines(java.io.Reader)