前言:

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

    //遍历tmp_check的年份和月份 DECLARE @year ) DECLARE @month ) DECLARE cur CURSOR FOR SELECT nf,yf FROM tmp_ch ...

  2. .Net并行计算支持嵌套事务的方法

    问题背景 一年前,我们开始利用.Net 4.0的TPL(Task Parallel Library)并行计算技术对复杂计算的功能节点进行性能优化,这些复杂计算往往会包含大量对数据库的操作.在应用TPL ...

  3. 连接(JOIN)运算

    内连接--INNER JOIN 此处用商品表(product)和商店商品表(ShopProduct)测试,外键:product_id select sp.shop_id, sp.shop_name, ...

  4. react工具库

    采用了react框架后,需要找到一些常用的库,常见的需求比如: 1)react生成二维码 2)react的轮播banner图 随着react的社区的壮大,以上的需求都有专门的库帮我们做这个: 1)re ...

  5. 使用ajax爬取网站图片()

    以下内容转载自:https://www.makcyun.top/web_scraping_withpython4.html 文章关于网站使用Ajaxj技术加载页面数据,进行爬取讲的很详细 大致步骤如下 ...

  6. Linux—Ubuntu14.0.5设置MySQL的字符集

    1.mysql配置文件地址 cd /etc/mysql/my.cnf 2.在[mysqld]在下方添加以下代码 [mysqld] init_connect='SET collation_connect ...

  7. Golang - 异常处理

    目录 Golang - 异常处理 1. 抛异常和处理异常 2. 返回异常 Golang - 异常处理 1. 抛异常和处理异常 package main import "fmt" / ...

  8. phpcms v9 邓士鹏(石家庄职业技术学院)

    头部标题.关键词.描述调用: <title>{if isset($SEO['title']) && !empty($SEO['title'])}{$SEO['title'] ...

  9. 什么是hashMap,初始长度,高并发死锁,java8 hashMap做的性能提升

    问题1:HashM安排的初始长度,为什么? 初始长度是 16,每次扩展或者是手动初始化,长度必须是 2的幂. 因为: index = HashCode(Key) & (length - 1), ...

  10. C#关键字的个人理解与注释

    C#关键字注释:abstract:抽象as:类型转换(返回转换结果)base:基类bool:布尔类型break:条件中断语句byte:字节case:条件语句catch:异常捕获后执行char:16 位 ...