前言:
在工作当中我们往往遇到很多文件的操作,我们也习惯写一些自己定义的工具类来简化文件操作,其实apache的commons的FileUtils类就是这样一个工具类,使用它能大大的简化我们对文件的操作。
准备工作:
1.下载jar 地址:http://commons.apache.org/proper/commons-io/download_io.cgi
2.把commons-io-2.4.jar 这个文件导入到你的项目中
说明:
1.由于是一个工具类使用都非常的简单 所以本文只是将其分类,展示它能够提供给我们什么。
2.习惯看api的可以直接看官方的api 传送门
3.可以看一看官方的指引指引 传送门
4.FileUtils只是commons-io的其中一个工具类
代码示例:
/* 示例1:写文件
* 1.这里只列出3种方式全参数形式,api提供部分参数的方法重载
* 2.最后一个布尔参数都是是否是追加模式
* 3.如果目标文件不存在,FileUtils会自动创建
* */
FileUtils.write(new File("D:/test/测试.txt"), "FileUtils测试","UTF-8",true);
List<String> lines=new ArrayList<String>();
lines.add("欢迎访问:");
lines.add("https://www.jianshu.com");
FileUtils.writeLines(new File("D:/test/测试.txt"),lines,true);
FileUtils.writeStringToFile(new File("D:/test/测试.txt"), "作者:cxy", "UTF-8",true);
//示例2:读文件
System.out.println(FileUtils.readFileToString(new File("D:/test/测试.txt"), "UTF-8"));
System.out.println(FileUtils.readLines(new File("D:/test/测试.txt"), "UTF-8")); //返回一个list
//示例3:删除文件夹
FileUtils.deleteDirectory(new File("D:/test"));
FileUtils.deleteQuietly(new File("D:/test")); //文件夹不是空任然可以被删除,不会抛出异常
//示例4:移动文件 或 文件夹
//注意这里 第二个参数文件不存在会引发异常
FileUtils.moveDirectory(new File("D:/cxy1"), new File("D:/cxy2"));
FileUtils.moveDirectoryToDirectory(new File("D:/cxy2"), new File("D:/cxy3"), true);
/* 上面两个方法的不同是:
* moveDirectory:D:/cxy2里的内容是D:/cxy1的内容。
* moveDirectoryToDirectory:D:/cxy2文件夹移动到到D:/cxy3里
*
* 下面的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:拷贝
//结果是dir1和dir2在同一目录
FileUtils.copyDirectory(new File("D:/dir1"), new File("D:/dir2"));
//结果是将dir1拷贝到dir2下
FileUtils.copyDirectoryToDirectory(new File("D:/dir1"), new File("D:/dir2"));
//拷贝文件
FileUtils.copyFile(new File("d:/file1.xml"), new File("d:/file1.xml.bak"));
//拷贝文件到目录中
FileUtils.copyFileToDirectory(new File("d:/file1.xml"), new File("d:/dir1"));
//拷贝url到文件
FileUtils.copyURLToFile(new URL("http://www.xxx.com/rss.xml"), new File("d:/file1.xml"));