文件操作工具类(FileUtils)
使用 apache 的commons-io
包下的FileUtils,import org.apache.commons.io.FileUtils;
下载地址:http://commons.apache.org/proper/commons-io/download_io.cgi
官方API文档:http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html
静态方法可以直接使用类名使用
maven 创建的java工程,导入依赖
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
一、拷贝文件
static void | copyFile(File srcFile, File destFile) Copies a file to a new location preserving the file date. |
static void | copyFile(File srcFile, File destFile, boolean preserveFileDate) Copies a file to a new location. |
static long | copyFile(File input, OutputStream output) Copy bytes from a |
static void | copyFileToDirectory(File srcFile, File destDir) Copies a file to a directory preserving the file date. |
static void | copyFileToDirectory(File srcFile, File destDir, boolean preserveFileDate) Copies a file to a directory optionally preserving the file date. |
static void | copyInputStreamToFile(InputStream source, File destination) Copies bytes from an |
static void | copyToDirectory(File src, File destDir) Copies a file or directory to within another directory preserving the file dates. |
static void | copyToDirectory(Iterable<File> srcs, File destDir) Copies a files to a directory preserving each file's date. |
static void | copyToFile(InputStream source, File destination) Copies bytes from an |
static void | copyURLToFile(URL source, File destination) Copies bytes from the URL |
static void | copyURLToFile(URL source, File destination, int connectionTimeout, int readTimeout) Copies bytes from the URL |
1)拷贝文件到文件:copyFile(File srcFile, File destFile)
File file = new File("E:\\java\\file01\\abc雪.jpg");
String destFilePath = "E:\\java\\file02";
String destFileName = "abc雪02.jpg";
try {
FileUtils fileUtils = new FileUtils();
//文件拷贝到新的位置并保存文件的日期。
fileUtils.copyFile(file, new File(destFilePath,destFileName));
System.out.println("文件拷贝成功");
} catch (IOException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
2)拷贝文件到字节输出流。:copyFile(File input, OutputStream output)
String destFileName = "abc雪03.jpg";
//从文件copy to an字节输出流。
FileUtils.copyFile(file, new FileOutputStream(new File(destFilePath,destFileName)));
3)拷贝文件到文件的目录保存文件的日期:copyFileToDirectory(File srcFile, File destDir)
拷贝的文件名无法自定义,和原文件名一样
//拷贝文件到文件的目录保持文件的日期。
FileUtils.copyFileToDirectory(file, new File(destFilePath));
二、拷贝目录及文件
static void | copyDirectory(File srcDir, File destDir) Copies a whole directory to a new location preserving the file dates. |
static void | copyDirectory(File srcDir, File destDir, boolean preserveFileDate) Copies a whole directory to a new location. |
static void | copyDirectory(File srcDir, File destDir, FileFilter filter) Copies a filtered directory to a new location preserving the file dates. |
static void | copyDirectory(File srcDir, File destDir, FileFilter filter, boolean preserveFileDate) Copies a filtered directory to a new location. |
static void | copyDirectoryToDirectory(File srcDir, File destDir) Copies a directory to within another directory preserving the file dates. |
1)将整个目录拷贝到新位置,并保持原文件日期:copyDirectory(File srcDir, File destDir)
其包含文件及子目录文件并保持原文件日期
File file = new File("E:\\java\\file01");
String destFilePath = "E:\\java\\file03";
try {
//将整个目录复制新位置,并保持原文件日期。
FileUtils.copyDirectory(file, new File(destFilePath));
System.out.println("文件目录拷贝成功");
} catch (IOException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
2)将已筛选的目录拷贝的新位置:copyDirectory(File srcDir, File destDir, FileFilter filter)
文件过滤器筛选 其包含文件及子目录文件 拷贝,并保持原文件日期。
String destFilePath = "E:\\java\\file04";
//将已筛选的目录复制,并保持原文件日期的新位置。
FileUtils.copyDirectory(file, new File(destFilePath), new FileFilter() {
@Override
public boolean accept(File pathname) {
if(pathname.isDirectory()) return true;
else {
boolean b1 = pathname.getName().endsWith(".txt");
boolean b2 = pathname.getName().endsWith(".jpg");
return b1 || b2;
}
}
});
三、删除目录及文件
static void | deleteDirectory(File directory) Deletes a directory recursively. |
static boolean | deleteQuietly(File file) Deletes a file, never throwing an exception. |
static void | forceDelete(File file) Deletes a file. |
1)删除指定文件,从不引发异常:deleteQuietly(File file)
File file = new File("E:\\java\\file04\\abc雪.jpg");
//删除指定文件,从不引发异常。
FileUtils.deleteQuietly(file);
2)删除指定文件,不存在报异常:forceDelete(File file)
File file = new File("E:\\java\\file04\\abc雪.jpg");
try {
FileUtils.forceDelete(file);
System.out.println("操作成功");
} catch (IOException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
3)递归删除目录:deleteDirectory(File directory)
删除
其包含文件及子目录文件
File file = new File("E:\\java\\file04\\abc雪.jpg");
//递归删除目录。
try {
FileUtils.deleteDirectory(new File(destFilePath));
System.out.println("操作成功");
} catch (IOException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
四、清除目录:cleanDirectory(File directory)
static void | cleanDirectory(File directory) Cleans a directory without deleting it. |
清除该目录下的文件及子目录文件而不删除该目录文件夹。该目录不存在会报错
String destFilePath = "E:\\java\\file04";
try {
FileUtils.cleanDirectory(new File(destFilePath));
System.out.println("操作成功");
} catch (IOException e) {
e.printStackTrace();
System.out.println(e.getMessage());
}
其他方法查看API文档