一、概述

这是一个Java操作文件的常用库,是Apache对java的IO包的封装,这里面有两个非常核心的类FilenameUtils跟FileUtils,其中FilenameUtils是对文件名操作的封装;FileUtils是文件封装,开发中对文件的操作,几乎都可以在这个框架里面找到。 非常的好用。

导入依赖:

    <dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.3</version></dependency>

二、FileUtiles读API

public static void main(String[] args) throws Exception {  //读取文本文件的所有行到一个集合  List<String> lines=FileUtils.readLines(new File("D:/fileUtis/aa.txt"),"utf-8");  for (String s : lines) {  System.out.println(s);  }  //读取文件内容到一个字符串  String str = FileUtils.readFileToString(new File("D:/fileUtis/aa.txt"), "utf-8");  System.out.println(str);  //读取文件到一个byte数组  FileUtils.readFileToByteArray(new File("D:/fileUtis/aa.txt"));  }  

三、FileUtiles写API

public static void main(String[] args) throws Exception {  //将字符写入到一个文件,文件不存在会创建;第三个参数:true:追加,false:覆盖  FileUtils.write(new File("D:/fileUtis/targetFile/aa.txt"),"aa",false);  //根据指定编码将字符写入到一个文件,文件不存在会创建;会覆盖  FileUtils.write(new File("D:/fileUtis/targetFile/bb.txt"),"ickes","utf-8");  //根据指定编码将字符写入到一个文件,文件不存在会创建;会覆盖  FileUtils.write(new File("D:/fileUtis/targetFile/cc.txt"),"ickes","utf-8",true);  //将一个字符串集合根据指定的分隔符写入到文件中,第四个参数是分隔符  List<String> ss = new ArrayList<>();  ss.add("aa");ss.add("bb");  FileUtils.writeLines(new File("D:/fileUtis/targetFile/dd.txt"),"utf-8",ss, ",");  //将一个字符串集合,一行一行写入到文件中,  FileUtils.writeLines(new File("D:/fileUtis/targetFile/ee.txt"), "utf-8", ss,true);  }

四、FileUtiles删除API

public static void main(String[] args) throws Exception {  //删除一个目录和他的所有子目录,如果文件或者目录不存在会抛出异常  FileUtils.deleteDirectory(new File("D:/fileUtis/targetFile/"));  //删除一个目录或者一个文件,如果这个目录或者目录不存在不会抛出异常  FileUtils.deleteQuietly(new File("D:/fileUtis/targetFile/"));  //清除一个目录下面的所有文件跟目录。  FileUtils.cleanDirectory(new File("D:/fileUtis/targetFile/"));  //删除一个文件,如果是目录则递归删除forceDelete(File file),跟deleteDirectory基本一样  FileUtils.forceDelete(new File("D:/fileUtis/targetFile/"));  } 

五、FileUtiles创建API

public static void main(String[] args) throws Exception {  //创建一个目录,可以递归创建,只要不为null  FileUtils.forceMkdir(new File("D:/fileUtis/targetFile/aa"));  //创建一个空文件,若文件应经存在则只更改文件的最近修改时间  FileUtils.touch(new File("D:/fileUtis/targetFile/Liftoff.java"));  }  

六、FileUtiles复制、移动、剪切API

public static void main(String[] args) throws Exception {  //复制目录  File dataFile=new File("D:/fileUtis/dataFile");  File targetFile = new File("D:/fileUtis/targetFile");  if(targetFile.isDirectory()){//判断是否是一个目录  FileUtils.copyDirectory(dataFile,targetFile);  }  //复制文件  dataFile=new File("D:/fileUtis/dataFile/joiner.java");  targetFile = new File("D:/fileUtis/targetFile/aa.txt");  FileUtils.copyFile(dataFile,targetFile);  //复制文件到一个目录  dataFile=new File("D:/fileUtis/dataFile/joiner.java");  targetFile = new File("D:/fileUtis/");  FileUtils.copyFileToDirectory(dataFile, targetFile);  //移动目录到新的目录并且删除老的目录,新的目录不存在会创建,如果存在会报错  dataFile=new File("D:/fileUtis/dataFile");  targetFile = new File("D:/fileUtis/aa");  FileUtils.moveDirectory(dataFile, targetFile);  dataFile=new File("D:/fileUtis/dataFile");  targetFile = new File("D:/fileUtis/aa");  //把目录移动到一个新的文件下面,是新文件下面,ture,当目标文件不存在是否创建  FileUtils.moveDirectoryToDirectory(dataFile, targetFile, true);  //复制文件  FileUtils.moveFile(srcFile, destFile)  }  

七、FileUtiles的其他方法

#获取一个目录的大小
FileUtils.sizeOfDirectory(file);  #获取文件或者目录的大小
FileUtils.sizeOf(file);  #得到系统临时目录的路径,例如C:\Users\ADMINI~1\AppData\Local\Temp\
FileUtils.getTempDirectoryPath()  #比较两个文件内容是否相等,左右两边有空格返回false
FileUtils.contentEquals(file1, file2);  #获取用户的主目录路径,返回的是字符串
FileUtils.getUserDirectoryPath();  #获取代表用户主目录的文件,返回的是file
FileUtils.getUserDirectory();  #根据指定的文件获取一个新的文件输出流
FileUtils.openOutputStream(file);  #字节转换成直观带单位的值(包括单位GB,MB,KB或字节),如下返回95 M
FileUtils.byteCountToDisplaySize(100000000);   

八、对文件的过滤处理

public class FileUtilsTest {  /** * 通配符过滤目录下的文件 */  static void wildcardTest(){  File dir = new File("D:/fileUtis");FileFilter fileFilter = new WildcardFileFilter("*.java");File[] files = dir.listFiles(fileFilter);    for (int i = 0; i < files.length; i++) {    System.out.println(files[i]);    }    }  /** * 过滤文件大小,等于或大于某一尺寸 ,单位为字节 */  static void sizeFile(){  File dir = new File("D:/fileUtis");   String[] files = dir.list( new SizeFileFilter(1024*2) );  for ( int i = 0; i < files.length; i++ ) {  System.out.println(files[i]);  }  }  /** * 过滤文件后缀名  */  static void suffix(){  File dir = new File("D:/fileUtis");   String[] files = dir.list(new SuffixFileFilter(".java"));  for (int i = 0; i < files.length; i++) {    System.out.println(files[i]);    }     }  /** * 使用正则表达式过滤 */  static void regex(){  File dir = new File("D:/fileUtis");   FileFilter fileFilter = new RegexFileFilter("^j.*.java");    File[] files = dir.listFiles(fileFilter);    for (int i = 0; i < files.length; i++) {    System.out.println(files[i]);    }   }  /** * 文件前缀过滤 */  static void aa(){  File dir = new File("D:/fileUtis");  String[] files = dir.list( new PrefixFileFilter("aa"));    for ( int i = 0; i < files.length; i++ ) {    System.out.println(files[i]);    }    }  /** * 打印这个目录下所有.java结尾的文件名,会递归去他子目录中去找 * @param args * @throws Exception */  public static void main(String[] args) throws Exception {  File dir = new File("D:/fileUtis");  Collection<File> files = FileUtils.listFiles(dir,  FileFilterUtils.suffixFileFilter(".java"),    DirectoryFileFilter.DIRECTORY);  for (File f : files) {    System.out.println(f.getName());    }   }
}  

java - FileUtils类相关推荐

  1. Java File类总结和FileUtils类

    Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. Fi ...

  2. 干货:排名前 16 的 Java 工具类!

    2019独角兽企业重金招聘Python工程师标准>>> 干货:排名前 16 的 Java 工具类!   在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最 ...

  3. 排名前 16 的 Java 工具类

    转载来自微信公众号:Java 技术栈.如有侵权,请联系作者删除!! 在 Java 中,工具类定义了一组公共方法,这篇文章将介绍 Java 中使用最频繁及最通用的 Java 工具类.以下工具类.方法按使 ...

  4. beanutils工具类_16 个超级实用的 Java 工具类!

    在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...

  5. java轻量级并行工具类_16 个超级实用的 Java 工具类

    原标题:16 个超级实用的 Java 工具类 源 /juejin 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名, ...

  6. [19/04/04-星期四] IO技术_CommonsIO(通用IO,别人造的轮子,FileUtils类 操作文件 IOUtilsl类 操作里边的内容 )...

    一.概念 JDK中提供的文件操作相关的类,但是功能都非常基础,进行复杂操作时需要做大量编程工作.实际开发中,往往需要 你自己动手编写相关的代码,尤其在遍历目录文件时,经常用到递归,非常繁琐. Apac ...

  7. java 文本工具类_干货:排名前16的Java工具类

    原标题:干货:排名前16的Java工具类 作者丨Java技术栈 https://www.jianshu.com/p/9e937d178203 在Java中,工具类定义了一组公共方法,这篇文章将介绍Ja ...

  8. 干货:排名前16的Java工具类

    image 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源 ...

  9. 排名前16的Java工具类

    原文:https://www.jianshu.com/p/9e937d178203 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法 ...

最新文章

  1. linux编译mysql报无法将左值_'错误:无法将'std::ostream {aka std::basic_ostream
  2. gossip 区块链_源代码: 一个最小化的区块链系统
  3. MACOS远程访问树莓派桌面
  4. 特征工程之数据预处理(上)
  5. 用Nikto探测一个网站所用到的技术
  6. 程序性能常用衡量指标
  7. ES3~ES6数组的方法总结
  8. IDEA 社区版下载与安装
  9. 2020计算机保研心得(上岸中科大)
  10. 计算机专业mac好用吗,苹果笔记本电脑系统好用吗_苹果笔记本电脑系统好用不好用-win7之家...
  11. linux 类似winscp_winscp 有没有Linux版的
  12. 基于matlab的ofdm系统仿真及性能分析,基于MATLAB的OFDM系统性能仿真
  13. HTML转义字符表,JavaScript常用转义符
  14. 计算机弹奏致爱数字,华为电脑——我的至爱
  15. ..\USER\stm32f10x.h(428): error: #67: expected a “}“ ADC1_2_IRQn = 18, /*!<
  16. 2020外贸管理软件排名
  17. 机器人阿莫西_阿莫西机器人
  18. 【Filter过滤器案例】登录验证+敏感词过滤
  19. oracle日期转换为季度,ORACLE时间字段取年、月、日、季度
  20. 最新Things3 for Mac(最好用的GTD时间管理工具)中文:使用教程

热门文章

  1. 如何下载并生成等高线
  2. Flutter免费视频第三季-布局组件讲解
  3. Spring Boot下载Excel模板,内容乱码解决方法
  4. c++小病毒(无限弹窗)
  5. python可视化开源工具_这5款Python可视化神器,总有一款适合你!
  6. R语言与数据分析(7)-R包的使用
  7. php 去除开头空格,学习猿地-php怎么去除前面空格
  8. mybatis映射关系
  9. python获取中文字体点阵坐标_在squ中高效在线获取点阵点
  10. AutoCAD二次开发经验