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 File to an OutputStream.

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 InputStream source to a file destination.

扫描二维码关注公众号,回复: 3860869 查看本文章
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 InputStream source to a file destination.

static void copyURLToFile(URL source, File destination)

Copies bytes from the URL source to a file destination.

static void copyURLToFile(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 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文档

猜你喜欢

转载自blog.csdn.net/qq_42402854/article/details/83374559
今日推荐