FileUtils工具類常用方法
檔案操作工具類(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文件