java file move_java使用FileUtils文件操作神器

前言:

在工作当中我们往往遇到很多文件的操作,我们也习惯写一些自己定义的工具类来简化文件操作,其实apache的commons的FileUtils类就是这样一个工具类,使用它能大大的简化我们对文件的操作。

准备工作:

2.把commons-io-2.4.jar 这个文件导入到你的项目中

说明:

1.由于是一个工具类使用都非常的简单 所以本文只是将其分类,展示它能够提供给我们什么。

2.习惯看api的可以直接看官方的api  传送门

3.可以看一看官方的指引  指引传送门

4.FileUtils只是commons-io的其中一个工具类

分类说明演示:

1.写 文件/文件夹

Java代码  2becf47921da0fca47eec0a6d8107ac4.png

/* 写文件

* 1.这里只列出3种方式全参数形式,api提供部分参数的方法重载

* 2.最后一个布尔参数都是是否是追加模式

* 3.如果目标文件不存在,FileUtils会自动创建

* */

//static void:write(File file, CharSequence data, String encoding, boolean append)

FileUtils.write(new File("D:/a/b/cxyapi.txt"), "程序换api","UTF-8",true);

//static void:writeLines(File file, Collection> lines, boolean append)

List lines=new ArrayList();

lines.add("欢迎访问:");lines.add("www.cxyapi.com");

FileUtils.writeLines(new File("D:/a/b/cxyapi.txt"),lines,true);

//static void:writeStringToFile(File file, String data, String encoding, boolean append)

FileUtils.writeStringToFile(new File("D:/a/b/cxyapi.txt"), "作者:cxy", "UTF-8",true);

2.读 文件/文件夹

Java代码  2becf47921da0fca47eec0a6d8107ac4.png

//读文件

//static String:readFileToString(File file, String encoding)

System.out.println(FileUtils.readFileToString(new File("D:/a/b/cxyapi.txt"), "UTF-8"));

//static List:readLines(File file, String encoding)

System.out.println(FileUtils.readLines(new File("D:/a/b/cxyapi.txt"), "UTF-8")); //返回一个list

3.删除 文件/文件夹

Java代码  2becf47921da0fca47eec0a6d8107ac4.png

//删除目录

//static void:deleteDirectory(File directory)

FileUtils.deleteDirectory(new File("D:/not/cxyapi"));

//static boolean:deleteQuietly(File file)

FileUtils.deleteQuietly(new File("D:/not/cxyapi")); //文件夹不是空任然可以被删除,永远不会抛出异常

4.移动 文件/文件夹

Java代码  2becf47921da0fca47eec0a6d8107ac4.png

//移动文件 或 文件夹

//static void:moveDirectory(File srcDir, File destDir)

FileUtils.moveDirectory(new File("D:/cxyapi1"), new File("D:/cxyapi2")); //注意这里 第二个参数文件不存在会引发异常

//static void:moveDirectoryToDirectory(File src, File destDir, boolean createDestDir)

FileUtils.moveDirectoryToDirectory(new File("D:/cxyapi2"), new File("D:/cxyapi3"), true);

/* 上面两个方法的不同是:

* moveDirectory:D:/cxyapi2里的内容是D:/cxyapi1的内容。

* moveDirectoryToDirectory:D:/cxyapi2文件夹移动到到D:/cxyapi3里

*

* 下面的3个都比较简单没提供示例,只提供了api

* 其中moveToDirectory和其他的区别是 它能自动识别操作文件还是文件夹

*/

//static void:moveFileToDirectory(srcFile, destDir, createDestDir)

//static void:moveFile(File srcFile, File destFile)

//static void:moveToDirectory(File src, File destDir, boolean createDestDir)

5.copy

Java代码  2becf47921da0fca47eec0a6d8107ac4.png

//结果是cxyapi和cxyapi1在同一目录

FileUtils.copyDirectory(new File("D:/cxyapi"), new File("D:/cxyapi1"));

//结果是将cxyapi拷贝到cxyapi2下

FileUtils.copyDirectoryToDirectory(new File("D:/cxyapi"), new File("D:/cxyapi2"));

//拷贝文件

FileUtils.copyFile(new File("d:/cxyapi.xml"), new File("d:/cxyapi.xml.bak"));

//拷贝文件到目录中

FileUtils.copyFileToDirectory(new File("d:/cxyapi.xml"), new File("d:/cxyapi"));

//拷贝url到文件

FileUtils.copyURLToFile(new URL("http://www.cxyapi.com/rss/cxyapi.xml"), new File("d:/cxyapi.xml"));

6.其他

Java代码  2becf47921da0fca47eec0a6d8107ac4.png

//判断是否包含文件或者文件夹

boolean b=FileUtils.directoryContains(new File("D:/cxyapi"), new File("D:/cxyapi/cxyapi.txt"));

System.out.println(b);

//获得临时目录 和 用户目录

System.out.println(FileUtils.getTempDirectoryPath());

System.out.println(FileUtils.getUserDirectoryPath());

//打开流,如果不存在创建文件及其目录结构

//第二个参数表示 文件流是否是追加方式

FileOutputStream fos=FileUtils.openOutputStream(new File("D:/cxyapi/cxyapi.txt"),true);

fos.write(new String("欢迎访问:www.cxyapi.com\r\n").getBytes());

fos.close();

//文件 或 文件夹大小

System.out.println(FileUtils.sizeOf(new File("D:/cxyapi")));

System.out.println(FileUtils.sizeOfDirectory(new File("D:/cxyapi")));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值