java使用FileUtils文件操作神器

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

前言:

在工作当中我们往往遇到很多文件的操作,我们也习惯写一些自己定义的工具类来简化文件操作,其实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.写 文件/文件夹

Java代码收藏代码
  1. /*写文件
  2. *1.这里只列出3种方式全参数形式,api提供部分参数的方法重载
  3. *2.最后一个布尔参数都是是否是追加模式
  4. *3.如果目标文件不存在,FileUtils会自动创建
  5. **/
  6. //staticvoid:write(Filefile,CharSequencedata,Stringencoding,booleanappend)
  7. FileUtils.write(newFile("D:/a/b/cxyapi.txt"),"程序换api","UTF-8",true);
  8. //staticvoid:writeLines(Filefile,Collection<?>lines,booleanappend)
  9. List<String>lines=newArrayList<String>();
  10. lines.add("欢迎访问:");lines.add("www.cxyapi.com");
  11. FileUtils.writeLines(newFile("D:/a/b/cxyapi.txt"),lines,true);
  12. //staticvoid:writeStringToFile(Filefile,Stringdata,Stringencoding,booleanappend)
  13. FileUtils.writeStringToFile(newFile("D:/a/b/cxyapi.txt"),"作者:cxy","UTF-8",true);

2.读 文件/文件夹

Java代码收藏代码
  1. //读文件
  2. //staticString:readFileToString(Filefile,Stringencoding)
  3. System.out.println(FileUtils.readFileToString(newFile("D:/a/b/cxyapi.txt"),"UTF-8"));
  4. //staticList<String>:readLines(Filefile,Stringencoding)
  5. System.out.println(FileUtils.readLines(newFile("D:/a/b/cxyapi.txt"),"UTF-8"));//返回一个list

3.删除 文件/文件夹

Java代码收藏代码
  1. //删除目录
  2. //staticvoid:deleteDirectory(Filedirectory)
  3. FileUtils.deleteDirectory(newFile("D:/not/cxyapi"));
  4. //staticboolean:deleteQuietly(Filefile)
  5. FileUtils.deleteQuietly(newFile("D:/not/cxyapi"));//文件夹不是空任然可以被删除,永远不会抛出异常

4.移动 文件/文件夹

Java代码收藏代码
  1. //移动文件或文件夹
  2. //staticvoid:moveDirectory(FilesrcDir,FiledestDir)
  3. FileUtils.moveDirectory(newFile("D:/cxyapi1"),newFile("D:/cxyapi2"));//注意这里第二个参数文件不存在会引发异常
  4. //staticvoid:moveDirectoryToDirectory(Filesrc,FiledestDir,booleancreateDestDir)
  5. FileUtils.moveDirectoryToDirectory(newFile("D:/cxyapi2"),newFile("D:/cxyapi3"),true);
  6. /*上面两个方法的不同是:
  7. *moveDirectory:D:/cxyapi2里的内容是D:/cxyapi1的内容。
  8. *moveDirectoryToDirectory:D:/cxyapi2文件夹移动到到D:/cxyapi3里
  9. *
  10. *下面的3个都比较简单没提供示例,只提供了api
  11. *其中moveToDirectory和其他的区别是它能自动识别操作文件还是文件夹
  12. */
  13. //staticvoid:moveFileToDirectory(srcFile,destDir,createDestDir)
  14. //staticvoid:moveFile(FilesrcFile,FiledestFile)
  15. //staticvoid:moveToDirectory(Filesrc,FiledestDir,booleancreateDestDir)

5.copy

Java代码收藏代码
  1. //结果是cxyapi和cxyapi1在同一目录
  2. FileUtils.copyDirectory(newFile("D:/cxyapi"),newFile("D:/cxyapi1"));
  3. //结果是将cxyapi拷贝到cxyapi2下
  4. FileUtils.copyDirectoryToDirectory(newFile("D:/cxyapi"),newFile("D:/cxyapi2"));
  5. //拷贝文件
  6. FileUtils.copyFile(newFile("d:/cxyapi.xml"),newFile("d:/cxyapi.xml.bak"));
  7. //拷贝文件到目录中
  8. FileUtils.copyFileToDirectory(newFile("d:/cxyapi.xml"),newFile("d:/cxyapi"));
  9. //拷贝url到文件
  10. FileUtils.copyURLToFile(newURL("http://www.cxyapi.com/rss/cxyapi.xml"),newFile("d:/cxyapi.xml"));

6.其他

Java代码收藏代码
  1. //判断是否包含文件或者文件夹
  2. booleanb=FileUtils.directoryContains(newFile("D:/cxyapi"),newFile("D:/cxyapi/cxyapi.txt"));
  3. System.out.println(b);
  4. //获得临时目录和用户目录
  5. System.out.println(FileUtils.getTempDirectoryPath());
  6. System.out.println(FileUtils.getUserDirectoryPath());
  7. //打开流,如果不存在创建文件及其目录结构
  8. //第二个参数表示文件流是否是追加方式
  9. FileOutputStreamfos=FileUtils.openOutputStream(newFile("D:/cxyapi/cxyapi.txt"),true);
  10. fos.write(newString("欢迎访问:www.cxyapi.com ").getBytes());
  11. fos.close();
  12. //文件或文件夹大小
  13. System.out.println(FileUtils.sizeOf(newFile("D:/cxyapi")));
  14. System.out.println(FileUtils.sizeOfDirectory(newFile("D:/cxyapi")));

免责声明:文章转载自《java使用FileUtils文件操作神器》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇分析GC日志python中bitmap的参数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

oracle 在sql中显示blob的字符串

最近在用oracle的过程中用到了对blob字段模糊查询的问题,对oracle来说,我并不是高手,找了很多的资料终于能够查出来了。以上只是自己做了个简单的处理,相信肯定有更好的方法,希望大家帮忙,但是感觉dbms_lob函数下的方法真的很好用。...

C#控件重绘学习(一)

由于需要制作工业控制软件,传统的控制已不能满足实际要求,因此控制的重新绘制迫在眉睫。因为考研花费了很多时间,而C#的学习已经搁浅了很长时间,所以我打算借此机会仔细彻底地研究控件的重新绘制。首先,查看Button的旧背景:namespace:SystemWindows.Forms程序集:System.Windows.FormsButton具有太多属性:例如Ba...

微信小程序生成带参数的二维码(小程序码)独家asp.net的服务端c#完整代码

1) 我第一次使用wx。小程序端请求调用API,发现这是一个坑!@-_~Page:'pages/index/index',//在此处填写要跳转到的小程序页面。你不能在它前面添加/oh。发布后必须为1024页//小程序代码的边长,以像素为单位,范围[2801280]},标头:{'content-type':“application/json;charset=U...

选包

安装系统后,将不会安装一些基本工具。此时,您可以根据yum的要求安装它们。你也可以使用任何你想要的时尚。...

通过QQ邮箱的SMTP服务器发送QQ邮件至163邮箱提示“发送邮件失败”的解决方案(三种可能性,不妨一试)

发件人:QQ邮箱收件人:163邮箱基于上述开发平台。下面列出了通过QQ邮箱的SMTP服务器向163邮箱发送QQ邮件的三种可能的解决方案,提示“发送邮件失败”。您可以尝试在163邮箱的反垃圾邮件选项中设置白名单。如果您取消SMTP服务,然后再次选中“启用”,或尝试使用该帐户在其他地方发送邮件,这可能有助于从QQ邮箱解锁帐户(待测试。我将不负责测试这种可能性导致...

在oracle里,如何取得本周、本月、本季度、本年度的第一天和最后一天的时间

在Oracle中,如何获取本周、本月、本季度和今年的第一天和最后一天的时间------解决方案-------本周从dual中选择trunk+1;从dual中选择trunk+7;--选择本月的双截;从dual中选择last_ days;--本季精选双截;从dual中选择add_ months-1;--今年从dual中选择trunk;selectadd_ mon...