前言:

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

    1. dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封 ...

  2. PAC学习理论:机器学习那些事

    参考翻译,有大量删除和修改,如有异议,请拜访原文.一定要看英文原文!!!. 本文转载于:深度译文:机器学习那些事 英文[原题]A Few Useful Things to Know About Mac ...

  3. numpy安装失败-小失误

    1. 古老的方法:            安装python numpy库AMD64 失败,网上的教程是这样的:http://www.cnblogs.com/zhuyp1015/archive/2012 ...

  4. C#访问Win 32的一些尝试

    使用C#调用Win 32 Api大部分情况下基本只涉及到参数类型的转变,但在遇到Win 32 Api返回LPVOID *lpBuff 时会遇到一些解析遍历难题.lpBuff为二维指针,*lpBuff是 ...

  5. vue-awesome-swiper组件的使用

    一.轮播图组件是这样安装的 npm i --save-dev vue-awesome-swiper main.js里面 import 'swiper/dist/css/swiper.css' impo ...

  6. hadoop fs 常用命令(1)

    Hadoop: https://blog.csdn.net/mulangren1988/article/details/54860924 Hadoop:1. Hadoop fs –fs [local ...

  7. 【双系统】windows 和 Ubuntu 双系统安装

      本博客主要讲述如何在已安装windows系统的计算机上安装Ubuntu双系统,涉及系统安装和相应磁盘空间分配等问题. 所需环境: 电脑已安装windows系统 下载Ubuntu16.04系统镜像 ...

  8. 08.Web服务器-4.Web服务器动态资源请求

    1 浏览器请求动态页面过程 2 WSGI 怎么在你刚建立的Web服务器上运行一个Django应用和Flask应用,如何不做任何改变而适应不同的web架构呢? 在以前,选择 Python web 架构会 ...

  9. onunload与onbeforeunload事件解析 标签: 浏览器 2017-04-10 09:46 45人阅读 评论(0)

    注:只测试了chrome和IE浏览器的表现情况 onunload事件 //JS Document window.onunload = onunload_message; function onunlo ...

  10. Git 基础教程 之 撤销修改

    Git跟踪并管理的是修改,而非文件.每次修改,如果不用git add到暂存区,那就不会加入到commit中, 要么全部改完后,再add → commit :要么改一点,就add → commit. 撤 ...