The handling files with FileUtils from Apache Commons-IO in Java. The Apache Foundation has created a number of very useful data and file manipulation tools.
Remember that when creating our examples we use Maven and in the POM file we add this dependency.
<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency>
The FileUtils class of the Commons-IO library will allow you to manipulate files in various ways, for example, to copy a file from one folder to another it is only necessary to use the copyFileToDirectory function. In this example we have a text file and we want to make a copy of it to the folder “subfolder”.
package com.geekole; // Name of your java package import java.io.File; import org.apache.commons.io.FileUtils; /** * * @author geekole.com */ public class CopyFilesCommonsIO { public static void main(String args[]) { try { File file1 = new File("/home/geekole/Documents/java/files/file1.txt"); File subfolder = new File("/home/geekole/Documents/java/files/subfolder/"); FileUtils.copyFileToDirectory(file1, subfolder); System.out.println("Ready"); } catch (Exception e) { e.printStackTrace(); } } }
If we run the example we get this result:
Only the file “file1.txt” is copied to the folder: /home/geekole/Documents/java/files/subfolder
Another very useful method is to copy the contents of one folder to another copyToDirectory.
package com.geekole; // Name of your java package import java.io.File; import org.apache.commons.io.FileUtils; /** * * @author geekole.com */ public class CopyFoldersCommonsIO { public static void main(String args[]) { try { File sourceDirectory= new File("/home/geekole/Documents/java/files"); File destinationDirectory = new File("/home/geekole/Documents/java/backupFiles"); FileUtils.copyToDirectory(sourceDirectory, destinationDirectory); } catch (Exception e) { e.printStackTrace(); } } }
With the following result:
Copying the contents of /home/geekole/Documents/java/files recursively to /home/geekole/Documents/java/backupFiles/
FileUtils functions are especially useful:
String readFileToString(File file, Charset encoding) – Allows you to read the content of a text file and directly create a String.
public static void writeStringToFile(File file, String data, Charset encoding) – Allows you to create a text file with the content of a String that is passed as an argument along with its encoding.
But besides these simple examples, Apache Commons-IO FileUtils in Java has other methods that can help you:
- static String byteCountToDisplaySize(BigInteger size)
- static String byteCountToDisplaySize(long size)
- static Checksum checksum(File file, Checksum checksum)
- static long checksumCRC32(File file)
- static void cleanDirectory(File directory)
- static boolean contentEquals(File file1, File file2)
- static boolean contentEqualsIgnoreEOL(File file1, File file2, String charsetName)
- static File[] convertFileCollectionToFileArray(Collection<File> files)
- static void copyDirectory(File srcDir, File destDir)
- static void copyDirectory(File srcDir, File destDir, boolean preserveFileDate)
- static void copyDirectory(File srcDir, File destDir, FileFilter filter)
- static void copyDirectory(File srcDir, File destDir, FileFilter filter, boolean preserveFileDate)
- static void copyDirectoryToDirectory(File srcDir, File destDir)
- static void copyFile(File srcFile, File destFile)
- static void copyFile(File srcFile, File destFile, boolean preserveFileDate)
- static long copyFile(File input, OutputStream output)
- static void copyFileToDirectory(File srcFile, File destDir)
- static void copyFileToDirectory(File srcFile, File destDir, boolean preserveFileDate)
- static void copyInputStreamToFile(InputStream source, File destination)
- static void copyToFile(InputStream source, File destination)
- static void copyURLToFile(URL source, File destination)
- static void copyURLToFile(URL source, File destination, int connectionTimeout, int readTimeout)
- static void deleteDirectory(File directory)
- static boolean deleteQuietly(File file)
- static boolean directoryContains(File directory, File child)
- static void forceDelete(File file)
- static void forceDeleteOnExit(File file)
- static void forceMkdir(File directory)
- static void forceMkdirParent(File file)
- static File getFile(File directory, String… names)
- static File getFile(String… names)
- static File getTempDirectory()
- static String getTempDirectoryPath()
- static File getUserDirectory()
- static String getUserDirectoryPath()
- static boolean isFileNewer(File file, Date date)
- static boolean isFileNewer(File file, File reference)
- static boolean isFileNewer(File file, long timeMillis)
- static boolean isFileOlder(File file, Date date)
- static boolean isFileOlder(File file, File reference)
- static boolean isFileOlder(File file, long timeMillis)
- static boolean isSymlink(File file)
- static Iterator<File> iterateFiles(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)
- static Iterator<File> iterateFiles(File directory, String[] extensions, boolean recursive)
- static Iterator<File> iterateFilesAndDirs(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)
- static LineIterator lineIterator(File file)
- static LineIterator lineIterator(File file, String encoding)
- static Collection<File> listFiles(File directory, String[] extensions, boolean recursive)
- static Collection<File> listFilesAndDirs(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)
- static void moveDirectory(File srcDir, File destDir)
- static void moveDirectoryToDirectory(File src, File destDir, boolean createDestDir)
- static void moveFile(File srcFile, File destFile)
- static void moveFileToDirectory(File srcFile, File destDir, boolean createDestDir)
- static void moveToDirectory(File src, File destDir, boolean createDestDir)
- static FileInputStream openInputStream(File file)
- static FileOutputStream openOutputStream(File file)
- static FileOutputStream openOutputStream(File file, boolean append)
- static byte[] readFileToByteArray(File file)
- static String readFileToString(File file)
- static String readFileToString(File file, Charset encoding)
- static String readFileToString(File file, String encoding)
- static List<String> readLines(File file)
- static List<String> readLines(File file, Charset encoding)
- static List<String> readLines(File file, String encoding)
- static long sizeOf(File file)
- static BigInteger sizeOfAsBigInteger(File file)
- static long sizeOfDirectory(File directory)
- static BigInteger sizeOfDirectoryAsBigInteger(File directory)
- static File toFile(URL url)
- static File[] toFiles(URL[] urls)
- static void touch(File file)
- static URL[] toURLs(File[] files)
- static boolean waitFor(File file, int seconds)
- static void write(File file, CharSequence data)
- static void write(File file, CharSequence data, boolean append)
- static void write(File file, CharSequence data, Charset encoding)
- static void write(File file, CharSequence data, Charset encoding, boolean append)
- static void write(File file, CharSequence data, String encoding)
- static void write(File file, CharSequence data, String encoding, boolean append)
- static void writeByteArrayToFile(File file, byte[] data)
- static void writeByteArrayToFile(File file, byte[] data, boolean append)
- static void writeByteArrayToFile(File file, byte[] data, int off, int len)
- static void writeByteArrayToFile(File file, byte[] data, int off, int len, boolean append)
- static void writeLines(File file, Collection<?> lines)
- static void writeLines(File file, Collection<?> lines, boolean append)
- static void writeLines(File file, Collection<?> lines, String lineEnding)
- static void writeLines(File file, Collection<?> lines, String lineEnding, boolean append)
- static void writeLines(File file, String encoding, Collection<?> lines)
- static void writeLines(File file, String encoding, Collection<?> lines, boolean append)
- static void writeLines(File file, String encoding, Collection<?> lines, String lineEnding)
- static void writeLines(File file, String encoding, Collection<?> lines, String lineEnding, boolean append)
- static void writeStringToFile(File file, String data)
- static void writeStringToFile(File file, String data, boolean append)
- static void writeStringToFile(File file, String data, Charset encoding)
- static void writeStringToFile(File file, String data, Charset encoding, boolean append)
- static void writeStringToFile(File file, String data, String encoding)static void writeStringToFile(File file, String data, String encoding, boolean append)
We’ll be adding more examples of other Apache Commons-IO FileUtils in Java functions soon.