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 voidcopyFile(File srcFile, File destFile)

Copies a file to a new location preserving the file date.

static voidcopyFile(File srcFile, File destFile, boolean preserveFileDate)

Copies a file to a new location.

static longcopyFile(File input, OutputStream output)

Copy bytes from a File to an OutputStream.

static voidcopyFileToDirectory(File srcFile, File destDir)

Copies a file to a directory preserving the file date.

static voidcopyFileToDirectory(File srcFile, File destDir, boolean preserveFileDate)

Copies a file to a directory optionally preserving the file date.

static voidcopyInputStreamToFile(InputStream source, File destination)

Copies bytes from an InputStream source to a file destination.

static voidcopyToDirectory(File src, File destDir)

Copies a file or directory to within another directory preserving the file dates.

static voidcopyToDirectory(Iterable<File> srcs, File destDir)

Copies a files to a directory preserving each file's date.

static voidcopyToFile(InputStream source, File destination)

Copies bytes from an InputStream source to a file destination.

static voidcopyURLToFile(URL source, File destination)

Copies bytes from the URL source to a file destination.

static voidcopyURLToFile(URL source, File destination, int connectionTimeout, int readTimeout)

Copies bytes from the URL source to a file destination.

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 voidcopyDirectory(File srcDir, File destDir)

Copies a whole directory to a new location preserving the file dates.

static voidcopyDirectory(File srcDir, File destDir, boolean preserveFileDate)

Copies a whole directory to a new location.

static voidcopyDirectory(File srcDir, File destDir, FileFilter filter)

Copies a filtered directory to a new location preserving the file dates.

static voidcopyDirectory(File srcDir, File destDir, FileFilter filter, boolean preserveFileDate)

Copies a filtered directory to a new location.

static voidcopyDirectoryToDirectory(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 voiddeleteDirectory(File directory)

Deletes a directory recursively.

static booleandeleteQuietly(File file)

Deletes a file, never throwing an exception.

static voidforceDelete(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 voidcleanDirectory(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文档

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值