首先,我们要下载FileUtils相关的Apache-commons-io jar包以及api文档。FileUtils类库的下载页面在:

  http://commons.apache.org/proper/commons-io/download_io.cgi

  image.png

  FieUtils类中常用方法的介绍

  打开FileUtils的api文档,我们抽出一些工作中比较常用的方法,进行总结和讲解。总结如下:

  cleanDirectory:清空目录,但不删除目录。

  contentEquals:比较两个文件的内容是否相同。

  copyDirectory:将一个目录内容拷贝到另一个目录。可以通过FileFilter过滤需要拷贝的 文件。

  copyFile:将一个文件拷贝到一个新的地址。

  copyFileToDirectory:将一个文件拷贝到某个目录下。

  copyInputStreamToFile:将一个输入流中的内容拷贝到某个文件。

  deleteDirectory:删除目录。

  deleteQuietly:删除文件。

  listFiles:列出指定目录下的所有文件。

  openInputSteam:打开指定文件的输入流。

  readFileToString:将文件内容作为字符串返回。

  readLines:将文件内容按行返回到一个字符串数组中。

  size:返回文件或目录的大小。

  write:将字符串内容直接写到文件中。

  writeByteArrayToFile:将字节数组内容写到文件中。

  writeLines:将容器中的元素的toString方法返回的内容依次写入文件中。

  writeStringToFile:将字符串内容写到文件中。

  示例:

  1、统计文件或者目录大小

  public static void main(String[] args) {

  //文件大小

  long len =FileUtils.sizeOf(new File(.../../../XX.java));

  System.out.println(len);

  //目录大小

  len = FileUtils.sizeOf(new File(D:/../../../study04));

  System.out.println(len);

  }

  2、列出子孙级目录或文件,带有过滤功能

  public static void main(String[] args) {

  Collectionfiles =FileUtils.listFiles(new File(D:\\java300\\IO_study04),

  EmptyFileFilter.NOT_EMPTY, null);

  for (File file : files) {

  System.out.println(file.getAbsolutePath());

  }

  System.out.println(---------------------);

  files =FileUtils.listFiles(new File(D:\\..\\IO_study04),

  EmptyFileFilter.NOT_EMPTY, DirectoryFileFilter.INSTANCE);

  for (File file : files) {

  System.out.println(file.getAbsolutePath());

  }

  System.out.println(---------------------);

  files =FileUtils.listFiles(new File(D:\\..\\IO_study04),

  new SuffixFileFilter(java), DirectoryFileFilter.INSTANCE);

  for (File file : files) {

  System.out.println(file.getAbsolutePath());

  }

  System.out.println(---------------------);

  files =FileUtils.listFiles(new File(D:\\..\\IO_study04),

  FileFilterUtils.or(new SuffixFileFilter(java),

  new SuffixFileFilter(class),EmptyFileFilter.EMPTY), DirectoryFileFilter.INSTANCE);

  for (File file : files) {

  System.out.println(file.getAbsolutePath());

  }

  System.out.println(---------------------);

  files =FileUtils.listFiles(new File(D:\\..\\IO_study04),

  FileFilterUtils.and(new SuffixFileFilter(java),

  EmptyFileFilter.NOT_EMPTY), DirectoryFileFilter.INSTANCE);

  for (File file : files) {

  System.out.println(file.getAbsolutePath());

  }

  }

  3、读物文件

  public static void main(String[] args) throws IOException {

  //读取文件

  String msg =FileUtils.readFileToString(new File(emp.txt),UTF-8);

  System.out.println(msg);

  byte[] datas = FileUtils.readFileToByteArray(new File(emp.txt));

  System.out.println(datas.length);

  //逐行读取

  Listmsgs= FileUtils.readLines(new File(emp.txt),UTF-8);

  for (String string : msgs) {

  System.out.println(string);

  }

  LineIterator it =FileUtils.lineIterator(new File(emp.txt),UTF-8);

  while(it.hasNext()) {

  System.out.println(it.nextLine());

  }

  }

  4、写出内容

  public static void main(String[] args) throws IOException {

  //写出文件

  FileUtils.write(new File(happy.sxt), 学习是一件伟大的事业\r\n,UTF-8);

  FileUtils.writeStringToFile(new File(happy.sxt), 学习是一件辛苦的事业\r\n,UTF-8,true);

  FileUtils.writeByteArrayToFile(new File(happy.sxt), 学习是一件幸福的事业\r\n.getBytes(UTF-8),true);

  //写出列表

  Listdatas =new ArrayList();

  datas.add(马云);

  datas.add(马化腾);

  FileUtils.writeLines(new File(happy.sxt), datas,--------------,true);

  }

  5、复制文件

  public static void main(String[] args) throws IOException {

  //复制文件

  //FileUtils.copyFile(new File(p.png),new File(p-copy.png));

  //复制文件到目录

  //FileUtils.copyFileToDirectory(new File(p.png),new File(lib));

  //复制目录到目录

  //FileUtils.copyDirectoryToDirectory(new File(lib),new File(lib2));

  //复制目录

  //FileUtils.copyDirectory(new File(lib),new File(lib2));

  //拷贝URL内容

  //String url = https://pic2.zhimg.com/v2-7d01cab20858648cbf62333a7988e6d0_qhd.jpg;

  //FileUtils.copyURLToFile(new URL(url), new File(marvel.jpg));

  String datas =IOUtils.toString(new URL(http://www.163.com), gbk);

  System.out.println(datas);

  }

Apache-commons-io包的使用及常用方法的更多相关文章

  1. apache commons io包基本功能

    1. http://jackyrong.iteye.com/blog/2153812 2. http://www.javacodegeeks.com/2014/10/apache-commons-io ...

  2. IO与文件读写---使用Apache commons IO包提高读写效率

    觉得很不错,就转载了, 作者: Paul Lin 首先贴一段Apache commons IO官网上的介绍,来对这个著名的开源包有一个基本的了解:Commons IO is a library of ...

  3. Apache Commons IO入门教程(转)

    Apache Commons IO是Apache基金会创建并维护的Java函数库.它提供了许多类使得开发者的常见任务变得简单,同时减少重复(boiler-plate)代码,这些代码可能遍布于每个独立的 ...

  4. [转]Apache Commons IO入门教程

    Apache Commons IO是Apache基金会创建并维护的Java函数库.它提供了许多类使得开发者的常见任务变得简单,同时减少重复(boiler-plate)代码,这些代码可能遍布于每个独立的 ...

  5. apache commons io入门

    原文参考  http://www.javacodegeeks.com/2014/10/apache-commons-io-tutorial.html    Apache Commons IO 包绝对是 ...

  6. .apache.commons.io 源代码学习(一)

    java的初学者,准备通读各种高水平源代码,提升能力. 为了避免自己的惰性,写博客. 版本:2.5 开发平台:netbeans. 今天是第一天,网上先看个例子:http://www.importnew ...

  7. Apache Commons IO之FileUtils的常用方法

    Apache Commons IO 在学习io流的时候研究(翻译)了一下这个,只有FileUtils的某些方法,并不全面,还请谅解 org.apache.commons.io 这个包下定义了基于 st ...

  8. apache.commons.io.IOUtils: 一个很方便的IO工具库(比如InputStream转String)

    转换InputStream到String, 比如 //引入apache的io包 import org.apache.commons.io.IOUtils; ... ...String str = IO ...

  9. Caused by: java.lang.ClassNotFoundException: org.apache.commons.io.FileUtils

    1.错误叙述性说明 警告: Could not create JarEntryRevision for [jar:file:/D:/MyEclipse/apache-tomcat-7.0.53/web ...

  10. java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream(转)

    java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream 使用Tomcat的Manag ...

随机推荐

  1. javascript飞机大战-----004创建子弹对象

    /* 创建子弹:因为子弹不是只创建一个所以要用构造函数 注意一点:子弹发射的位置应该是英雄机的正中央的位置,所以需要传点东西进来 */ function Bullet(l,t){ this.l = l ...

  2. Publish over SSH插件安装

    1 Publish over SSH插件安装 打开Jenkins的“系统管理>管理插件”,选择“可选插件”,在输入框中输入“Publish over SSH”进行搜索,如果搜索不到可以在“已安装 ...

  3. 转载:SQL Server编程基本语法

    一.定义变量 --简单赋值 declare @a int print @a --使用select语句赋值 ) select @user1='张三' print @user1 ) print @user ...

  4. Java使用极小的内存完成对超大数据的去重计数,用于实时计算中统计UV

    Java使用极小的内存完成对超大数据的去重计数,用于实时计算中统计UV – lxw的大数据田地 http://lxw1234.com/archives/2015/09/516.htm Java使用极小 ...

  5. .m2\repository\org\springframework\spring-beans\4.1.4.RELEASE\spring-beans-4.1.4.RELEASE.jar!\org\springframework\beans\factory\xml\spring-beans-4.1.xsd

    <?xml version="1.0" encoding="UTF-8" standalone="no"?> <xsd:s ...

  6. log4j2配置日志大小,个数等

    1:设置log输出文件 https://www.cnblogs.com/sa-dan/p/6837225.html <?xml version="1.0" encoding= ...

  7. RDD的基础知识

    以下的这些分析都是基于spark2.1进行的 (一)什么是RDD A Resilient Distributed Dataset (RDD), the basic abstraction in Spa ...

  8. [golang note] 协程基础

    协程概念 √ 协程通常称为coroutine,在golang中称为goroutine. √ 协程本质上是一种用户态线程,它不需要操作系统来进行抢占式调度,在实际实现中寄存在线程之中. √ 协程系统开销 ...

  9. CentOS7系统上部署.net core程序

    一.准备工作 首先安装 xshell 和 xftp ,前者用于SSH连接Linux服务器,后者用于FTP上传下载文件. xshell和xftp个人使用是免费的,下载地址 之后分别输入用户名和密码登录主 ...

  10. testng日志 TestListenerAdapter

    TestListenerAdapter,空方法实现 ITestListener   创建自定义日志记录类 创建另一个新的类名为 CustomListener.java 在 C:\ > TestN ...