建议看原文格式清晰:https://blog.csdn.net/qq_36614559/article/details/81013244 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

<code class="language-html">package cn.xingoo.learn.commons;  import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.DirectoryFileFilter;
import org.apache.commons.io.filefilter.FileFileFilter;
import org.apache.commons.io.filefilter.FileFilterUtils;
import org.apache.commons.io.filefilter.IOFileFilter;
import org.junit.Test;  import java.io.*;
import java.net.URL;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.zip.CRC32;  /** * FileUtils支持很多文件操作,如 * * 文件写入 * 读取文件 * 创建目录 * 拷贝文件和目录 * 删除文件和目录 * 从URL转换 * 基于统配和过滤查看文件和目录 * 比较文件内容 * 文件的更新时间 * 检查校验码 * * Created by xxh on 2016/11/24. */
public class FileUtilsTest {  private static File parent = new File("D://test");  @Test  public void getDirTest(){  //获得基本的信息  System.out.println(FileUtils.getTempDirectory());//获取临时目录 java.io.tmpdir,getUserDirectoryPath返回路径字符串  System.out.println(FileUtils.getUserDirectory());//获取用户主目录 user.home,getUserDirectoryPath返回路径字符串  //以可读的方式,返回文件的大小EB, PB, TB, GB, MB, KB or bytes  System.out.println(FileUtils.byteCountToDisplaySize(10000000));  System.out.println(FileUtils.byteCountToDisplaySize(1));  }  @Test  public void openStream() throws IOException {  //获取文件输入和输出的文件流  //文件是目录或者不存在,都会跑出异常  InputStream in = FileUtils.openInputStream(new File("D://test/test1"));  OutputStream out = FileUtils.openOutputStream(new File("D://test/test2"));  out = FileUtils.openOutputStream(new File("D://test/test3"),true);//是否追加的形式添加内容  }  @Test  public void FileOperation() throws IOException {  //创建文件,如果文件存在则更新时间;如果不存在,创建一个空文件  //创建空文件的方式为:  // final OutputStream out = openOutputStream(file);  // IOUtils.closeQuietly(out);  FileUtils.touch(new File("D://test/test4"));  //文件内容的对比  FileUtils.contentEquals(new File("D://test/test1"),new File("D://test/test2"));  FileUtils.contentEqualsIgnoreEOL(new File("D://test/test1"),new File("D://test/test2"),null);//忽略换行符,第三个参数是字符集  //根据URL获取文件  FileUtils.toFile(new URL("file://D://test/test1"));  FileUtils.toFiles(null);  FileUtils.toURLs(new File[]{new File("D://test/test1")});  //文件拷贝  FileUtils.copyFileToDirectory(new File("/test1"),new File("/dir"),true);//第三个参数是否更新时间  FileUtils.copyFile(new File("/source"),new File("/target"),true);//TODO 阅读doCopy源码  //目录拷贝  File srcDir = new File("/source");  File destDir = new File("/target");  FileUtils.copyDirectoryToDirectory(new File("/source"),new File("/target"));  FileUtils.copyDirectory(new File("/source"),new File("/target"));  FileUtils.copyDirectory(srcDir, destDir, DirectoryFileFilter.DIRECTORY);//仅仅拷贝目录  IOFileFilter txtSuffixFilter = FileFilterUtils.suffixFileFilter(".txt");// 创建.txt过滤器  IOFileFilter txtFiles = FileFilterUtils.andFileFilter(FileFileFilter.FILE, txtSuffixFilter);  // 创建包含目录或者txt文件的过滤器  FileFilter filter = FileFilterUtils.orFileFilter(DirectoryFileFilter.DIRECTORY, txtFiles);  // Copy using the filter  FileUtils.copyDirectory(srcDir, destDir, filter);//TODO 阅读doCopyDirectory源码  //文件拷贝  FileUtils.copyInputStreamToFile(new FileInputStream("/test"),new File("/test"));  FileUtils.copyURLToFile(new URL("file:/test"),new File("/test"));  //删除文件  FileUtils.deleteDirectory(new File("/test"));//删除目录下所有的内容  FileUtils.deleteQuietly(new File("/test"));//如果是目录,会级联删除;不会抛出异常  //判断文件是否存在  FileUtils.directoryContains(new File("/dir"),new File("/file"));  //清除目录中的内容,不会删除该目录;  //先verifiedListFiles检查目录,检查目录是否为目录、是否存在,然后调用listFiles,如果返回null,则抛出异常  //遍历目录中的文件,如果是目录则递归删除;如果是文件则强制删除,删除失败(文件不存在或无法删除)都会抛出异常  FileUtils.cleanDirectory(new File("/dir"));//TODO verifiedListFiles  <------2016/11/24  //等待一个文件xx秒,知道文件创建后才返回。每max(100,remainning)循环检查一次  while(FileUtils.waitFor(new File("/dir"),60)){}  //读取目标文件,内部调用IOUtils.toString(inputstream,"utf-8")  String str = FileUtils.readFileToString(new File("/dir"),"utf-8");  //内部调用IOUtils.toByteArray(in)  byte[] bytes = FileUtils.readFileToByteArray(new File("/dir"));  //内部调用IOUtils.readLines(in, Charsets.toCharset(encoding));  List<String> strs = FileUtils.readLines(new File("/dir"),"utf-8");  //内部调用IOUtils.lineIterator(in, encoding)  FileUtils.lineIterator(new File("/dir"),"utf-8");  //四个参数分别为:目标文件,写入的字符串,字符集,是否追加  FileUtils.writeStringToFile(new File("/target"),"string","utf-8",true);  //write可以接受charsequence类型的数据,string,stringbuilder和stringbuffer都是实现了charsequence接口  FileUtils.write(new File("/target"),"target char sequence","utf-8",true);  FileUtils.writeByteArrayToFile(new File("/target"),"bytes".getBytes());//(file,字符数组)  FileUtils.writeByteArrayToFile(new File("/target"),"bytes".getBytes(),true);//(file,字符数组,是否追加)  FileUtils.writeByteArrayToFile(new File("/target"),"bytes".getBytes(),0,10);//(file,字符数组,起始位置,结束位置)  FileUtils.writeByteArrayToFile(new File("/target"),"bytes".getBytes(),0,10,true);//(file,字符数组,起始位置,结束位置,是否追加)  //writeLines多了一个lineEnding参数  FileUtils.writeLines(new File("/target"),"utf-8", FileUtils.readLines(new File("/target"),"utf-8"));  //强制删除  FileUtils.forceDelete(new File("/target"));  //在JVM  FileUtils.forceDeleteOnExit(new File("/target"));  //强制创建文件目录,如果文件存在,会抛出异常  FileUtils.forceMkdir(new File("/target"));  //强制创建父级目录  FileUtils.forceMkdirParent(new File("/xxxx/target"));  //如果是文件,直接读取文件大小;如果是目录,级联计算文件下的所有文件大小  FileUtils.sizeOf(new File("/target"));//返回Long  FileUtils.sizeOfAsBigInteger(new File("/target"));//返回BigInteger  FileUtils.sizeOfDirectory(new File("/target"));  FileUtils.sizeOfDirectoryAsBigInteger(new File("/target"));  //对比文件新旧  FileUtils.isFileNewer(new File("/target"),new File("/file"));  FileUtils.isFileOlder(new File("/target"), new Date());  FileUtils.checksum(new File("/target"),new CRC32());  FileUtils.checksumCRC32(new File("/target"));  FileUtils.moveDirectory(new File("/target"),new File("/file"));  FileUtils.moveDirectoryToDirectory(new File("/target"),new File("/file"),true);  FileUtils.moveFile(new File("/target"),new File("/file"));  FileUtils.moveFileToDirectory(new File("/target"),new File("/dir"),true);  FileUtils.moveToDirectory(new File("/target"),new File("/dir"),true);  FileUtils.isSymlink(new File("/target"));  }  @Test  public void findFiles(){  //返回文件的列表  List<File> files = (List<File>) FileUtils.listFiles(parent,new String[]{"test1","test2"},true);//TODO 重点看一下源码  //返回文件迭代器  Iterator<File> files_iter =  FileUtils.iterateFiles(parent,new String[]{"test1","test3"},true);  //把collection<File>转换成File[]  FileUtils.convertFileCollectionToFileArray(files);  }
}</code>  

FileUtils工具类的使用相关推荐

  1. javaSE commons-io第三方插件, FileUtils工具类,复制文件夹、文件,写入/读取文件

    commons-io插件下载:https://pan.baidu.com/s/16-lyGR0KKp943pIOCYTVcg  密码:x1t9 在项目中导入classpath: 1.创建lib文件夹 ...

  2. 最简单的文件上传--FileUtils工具类

    (文件上传的方法各有不同,这里挑了一个最为简单实用的分享给大家,后续会更新其他版本的文件上传和下载功能) 一.前台页面准备 二.后台代码配合 public class FileUpload exten ...

  3. FileUtils工具类详解

    FileUtils org.apache.commons.io.FileUtils 下载地址:commons-io Maven依赖 <dependency><groupId>c ...

  4. FileUtils工具类的使用方法

    /** * FileUtils支持很多文件操作,如 * 文件写入 * 读取文件 * 创建目录 * 拷贝文件和目录 * 删除文件和目录 * 从URL转换 * 基于统配和过滤查看文件和目录 * 比较文件内 ...

  5. java io文件流序列化_Java——Properties集合,Object序列化流与反序列化流,打印流,commons-IO文件工具类...

    一.properties集合 集合对象Properties类,继承Hashtable,实现Map接口,可以和IO对象结合使用,实现数据的持久存储. 特点: Hashtable的子类,map集合中的方法 ...

  6. java常用文件工具类

    java常用工具类(一) 主要是Java操作文件及及IO流的一些常用库,是Apache对java的IO包的封装,这里面文件类工具有两个非常核心的类FilenameUtils跟FileUtils,IO流 ...

  7. JavaSE(字符流、IO资源的处理、属性集、ResourceBundle工具类、缓冲流、转换流、序列化、打印流、装饰设计模式、commons-io工具包)

    JavaSE 字符流 字符输入流[Reader] 字符输入流Reader类的概述 字符输入流Reader类的常用方法 FileReader类 FileReader类的概述 FileReader类的构造 ...

  8. 使用org.apache.commons.io.FileUtils,IOUtils工具类操作文件

    转载自 使用org.apache.commons.io.FileUtils,IOUtils;工具类操作文件 File src = new File("G:/2012/portal/login ...

  9. Android开发工具类之FileUtils,ImageUtils

    文件工具类,可用于读写文件及对文件进行操作.如: readFile(String filePath) 读文件 writeFile(String filePath, String content, bo ...

  10. java文件上传下载工具类FileUtils

    上传: package com.yonyougov.dmp.amserver.utils;import com.alibaba.fastjson.JSON; import org.slf4j.Logg ...

最新文章

  1. 机器学习应用方向(三)~可解释机器学习Explainable ML/Explainable AI
  2. 全国地铁城市数据分析(python实现)
  3. webp转换gif_右键转换文件格式
  4. 60、date的使用
  5. spark DAGScheduler、TaskSchedule、Executor执行task源码分析
  6. 在后台获取前台按钮里的值(如LinkButton)
  7. Android系统(127)---Android6.0存储中加入总内存和系统内存项和在西语下把,换成.
  8. 万能的林萧说:我来告诉你,一个草根程序员如何进入BAT。 - 今日头条(www.toutiao.com)...
  9. 【原】对txt文本进行数据读取
  10. 模拟美萍加密狗--Rockey2虚拟狗(一)
  11. 应届生如何做好一份简历?
  12. android 路由器 操作系统,小米全新路由器操作系统是什么?支持什么语言?
  13. HTML——制作新闻网页
  14. 如何用java给PDF添加一个图片水印?
  15. hdu2550百步穿杨 解报告
  16. 5G取代光纤宽带,有可能吗?
  17. 与声网面对面!声网Agora开发者吐槽大会招募中
  18. CS5463 DP转HDMI8K30Hz转换芯片规格书|CS5466 typec转HDMI8K30Hz (4K144Hz)转换芯片规格书
  19. linux 混杂设备驱动之adc驱动
  20. java 英文字母大小写转换方法

热门文章

  1. android:scaleType属性 centerCrop,fitXY,fitCenter
  2. nekohtml 用法
  3. MySQL查询数据详细
  4. oracle数据库一些常用数据库类型
  5. 新书介绍:CCNA基础教程
  6. WPF笔记汇总之ListView控件
  7. 计算机如何驱动无线网络,笔记本电脑无线网卡驱动怎么安装?
  8. 基于javaweb+mysql的在线购书系统网上书店图书商城(前台、后台)(java+Springboot+ssm+mysql+maven)
  9. Python-nmap 使用文档
  10. Web在线3D编辑器-全场景编辑全新功能升级