前言:

在工作当中我们往往遇到很多文件的操作,我们也习惯写一些自己定义的工具类来简化文件操作,其实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. /* 写文件
  2. * 1.这里只列出3种方式全参数形式,api提供部分参数的方法重载
  3. * 2.最后一个布尔参数都是是否是追加模式
  4. * 3.如果目标文件不存在,FileUtils会自动创建
  5. * */
  6. //static void:write(File file, CharSequence data, String encoding, boolean append)
  7. FileUtils.write(new File("D:/a/b/cxyapi.txt"), "程序换api","UTF-8",true);
  8. //static void:writeLines(File file, Collection<?> lines, boolean append)
  9. List<String> lines=new ArrayList<String>();
  10. lines.add("欢迎访问:");lines.add("www.cxyapi.com");
  11. FileUtils.writeLines(new File("D:/a/b/cxyapi.txt"),lines,true);
  12. //static void:writeStringToFile(File file, String data, String encoding, boolean append)
  13. FileUtils.writeStringToFile(new File("D:/a/b/cxyapi.txt"), "作者:cxy", "UTF-8",true);

2.读 文件/文件夹

  1. //读文件
  2. //static String:readFileToString(File file, String encoding)
  3. System.out.println(FileUtils.readFileToString(new File("D:/a/b/cxyapi.txt"), "UTF-8"));
  4. //static List<String>:readLines(File file, String encoding)
  5. System.out.println(FileUtils.readLines(new File("D:/a/b/cxyapi.txt"), "UTF-8")); //返回一个list

3.删除 文件/文件夹

  1. //删除目录
  2. //static void:deleteDirectory(File directory)
  3. FileUtils.deleteDirectory(new File("D:/not/cxyapi"));
  4. //static boolean:deleteQuietly(File file)
  5. FileUtils.deleteQuietly(new File("D:/not/cxyapi")); //文件夹不是空任然可以被删除,永远不会抛出异常

4.移动 文件/文件夹

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

5.copy

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

6.其他

  1. //判断是否包含文件或者文件夹
  2. boolean b=FileUtils.directoryContains(new File("D:/cxyapi"), new File("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. FileOutputStream fos=FileUtils.openOutputStream(new File("D:/cxyapi/cxyapi.txt"),true);
  10. fos.write(new String("欢迎访问:www.cxyapi.com\r\n").getBytes());
  11. fos.close();
  12. //文件 或 文件夹大小
  13. System.out.println(FileUtils.sizeOf(new File("D:/cxyapi")));
  14. System.out.println(FileUtils.sizeOfDirectory(new File("D:/cxyapi")));

java使用FileUtils文件操作神器的更多相关文章

  1. Android FileUtils 文件操作类

    系统路径 Context.getPackageName(); // 用于获取APP的所在包目录 Context.getPackageCodePath(); //来获得当前应用程序对应的apk文件的路径 ...

  2. Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录

    Java IO,io,文件操作,删除文件,删除文件夹,获取文件父级目录 这里先简单的贴下常用的方法: File.separator //当前系统文件分隔符 File.pathSeparator // ...

  3. Java中的文件操作(一)RandomAccessFile

    今天,学到的是java中的文件操作. Java.IO.File Java中操作文件用到RandomAccessFile类,既可以读取文件内容,也可以向文件输出数据,但不同与普通输入/输出流的是Rand ...

  4. Java审计之文件操作漏洞

    Java审计之文件操作漏洞篇 0x00 前言 本篇内容打算把Java审计中会遇到的一些文件操作的漏洞,都给叙述一遍.比如一些任意文件上传,文件下载,文件读取,文件删除,这些操作文件的漏洞. 0x01 ...

  5. Java最全文件操作实例汇总

    本文实例汇总了Java文件操作.分享给大家供大家参考,具体如下: 1.创建文件夹 ? 1 2 3 4 5 6 7 8 9 10 11 //import java.io.*; File myFolder ...

  6. Java中的文件操作

    在使用计算机编程中,常常会用到对于文件的操作,以下是我对于Java中文件的相关内容学习之后的一个总结和在学习过程中遇到的一些问题. 一.什么是文件 对于文件进行操作,首先我们要知道什么是文件.在此之前 ...

  7. 关于文件的INode与Java中的文件操作接口

    本文由作者周梁伟授权网易云社区发布. 近日做的项目中涉及到多进程共同读写多个文件的问题,文件名和最后修改时间都是可能会被频繁修改的,因而识别文件的唯一性会产生相当的麻烦,于是专门再学习了一下文件系统对 ...

  8. 第11讲-Java泛型和文件操作

    1.知识点 1.1.课程回顾 1.2.本章重点 1.2.1.泛型 1.2.2.文件操作 2.具体内容 2.1.Java泛型 2.1.1.为什么需要泛型 我们发现在List中,底层是Object[ ]数 ...

  9. Java7 新特性 —— java.nio.file 文件操作

    本文部分摘自 On Java 8 自 Java7 开始,Java 终于简化了文件读写的基本操作,新增了 java.nio.file 库,通过与 Java8 新增的 stream 结合可以使得文件操作变 ...

随机推荐

  1. 时序分析:KMP算法用于序列识别

    考研基础资料之一的<算法与数据结构>,KMP算法作为串匹配的基本算法,为必考题目之一.对于算法入门来说,也是复杂度稍高的一个基本算法. KMP算法作为串匹配的非暴力算法,是为了减少回溯而设 ...

  2. (转)基于Metronic的Bootstrap开发框架经验总结(6)--对话框及提示框的处理和优化

    http://www.cnblogs.com/wuhuacong/p/4775282.html 在各种Web开发过程中,对话框和提示框的处理是很常见的一种界面处理技术,用得好,可以给用户很好的页面体验 ...

  3. PyCharm与GitHub环境配置

    转载地址:https://blog.csdn.net/xierhacker/article/details/70053162 一.准备工作 Ⅰ.git下载和安装 要连接GitHub,首先git是必不可 ...

  4. matlab学习GUI可调的界面窗口

    创建一个GUI界面,在此依然利用GUI_01的窗口来演示 发现它的最大化窗口不可调 在GUI绘制中,工具--->选择GUI选项---->选择第二个成比例 再运行就可以调控大小了

  5. kvm之 virt-install工具命令详解

    一.virt-install是一个命令行工具,它能够为KVM.Xen或其它支持libvrit API的hypervisor创建虚拟机并完成GuestOS安装:此外,它能够基于串行控制台.VNC或SDL ...

  6. [转载]查看Linux系统硬件信息实例详解

    linux查看系统的硬件信息,并不像windows那么直观,这里我罗列了查看系统信息的实用命令,并做了分类,实例解说. cpu lscpu命令,查看的是cpu的统计信息. blue@blue-pc:~ ...

  7. php第二节课

    基础语法 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  8. 排序算法总结(C++)

    算法复杂度 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面. 不稳定:如果a原本在b的前面,而a=b,排序之后 a 可能会出现在 b 的后面. 时间复杂度:对排序数据的总的操作次数.反映 ...

  9. lamp平台搭建论坛网站(Discuz论坛)

    1. 安装Apache 1) 安装apr [root@www lamp]# yum install zlib-devel gcc gcc-c++ openssl-devel pcre-devel -y ...

  10. Java基本类型转换

    1.自动类型转换 java所有的数值型变量都可以相互转换,如果系统支持把某种基本类型的值直接付赋给另一个基本类型的变量,则这种方式被称为自动类型转换. 当把一个表数范围小的数值或变量直接赋给另一个表数 ...