Apache Commons-IO使用小技巧

 

Commons IO是一个帮助开发IO功能的实用程序库。

主要包括六个方面:

  • 实用程序类 - 使用静态方法执行常见任务
  • 输入 - 有用的输入流和读取器实现
  • 输出 - 有用的输出流和写入器实现
  • 过滤器 - 文件过滤器的各种实现
  • 比较器 - 用于文件的java.util.Comparator的各种实现
  • 文件监视器 - 用于监视文件系统事件的组件

官方API地址:
http://commons.apache.org/proper/commons-io/javadocs/api-release/index.html?org/apache/commons/io/FileUtils.html

用户描述手册:http://commons.apache.org/proper/commons-io/description.html


/* 写文件
* 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("blog.gzczy.top");
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"), "作者:czy", "UTF-8",true);

//读文件或者文件夹
//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

   

我们以前删除文件/文件夹普遍的做法是递归删除,不断遍历子文件夹找到并且逐个删除里面文件

//删除目录
//static void:deleteDirectory(File directory)
FileUtils.deleteDirectory(new File("D:/not/cxyapi"));
//注意:这种方式删除path下的文件时,若path路径下的文件读写流没有关闭,则删除不了;
//第二种方式(解决上面的问题,强制删除):
//static boolean:deleteQuietly(File file)
FileUtils.deleteQuietly(new File("D:/not/cxyapi")); //文件夹不是空任然可以被删除,永远不会抛出异常
//移动文件 或 文件夹
//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)
//结果是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("https://blog.gzczy.topl"), new File("d:/cxyapi.xml"));


查看原文: https://blog.gzczy.top/index.php/2018/11/22/apache-commons-io%e4%bd%bf%e7%94%a8%e5%b0%8f%e6%8a%80%e5%b7%a7/

转载于:https://my.oschina.net/u/4032575/blog/2906839

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值