说明

org.apache.commons.io.FileUtils 工具类包含了许多操作文件的方法,此文章介绍一些常用的文件操作方法,方便使用的时候查阅参考

创建输入流

public static FileInputStream openInputStream(File file)

说明:openInputStream(file) 与 new FileInputStream(file) 作用相同,不同点是前者对file对象做了是否存在及是否支持读写做了判断,判断通过才创建输入流

创建输出流

public static FileOutputStream openOutputStream(File file)

说明:openOutputStream(file) 与 new FileOutputStream(file) 作用相同,不同点是前者对file对象做了是否存在及是否支持读写做了判断,判断通过才创建输入流。

字节转换成直观带单位的值(包括单位GB,MB,KB或字节)

public static String byteCountToDisplaySize(long size)

示例代码:

String byteCountToDisplaySize = FileUtils.byteCountToDisplaySize(1024 * 1024 * 1024);
System.out.println("size=" + byteCountToDisplaySize); //size=1GB

创建一个空文件,若文件已经存在则只更改文件的最近修改时间

public static void touch(File file)

把相应的文件集合转换成文件数组

public static File[] convertFileCollectionToFileArray(Collection<File> files)

根据一个过滤规则获取一个目录下的文件

private static void innerListFiles(Collection<File> files, File directory,IOFileFilter filter)

根据一个IOFileFilter过滤规则获取一个目录下的文件集合

public static Collection<File> listFiles(File directory, IOFileFilter fileFilter, IOFileFilter dirFilter)

查找一个目录下面符合对应扩展名的文件的集合

public static Collection<File> listFiles( File directory, String[]extensions, boolean recursive)

判断两个文件是否相等

public static boolean contentEquals(File file1, File file2)

根据一个Url来创建一个文件

public static File toFile(URL url)

根据一个Url数组来创建一个文件数组

public static File[] toFiles(URL[] urls)

文件复制 / 拷贝

  • 拷贝文件到新的文件夹

    拷贝一个文件到指定的目录文件

    public static void copyFileToDirectory(File srcFile, File destDir) 拷贝一个文件到指定的目录文件并且设置是否更新文件的最近修改时间

    public static void copyFileToDirectory(File srcFile, File destDir, boolean preserveFileDate)

    代码:

    File file = new File("E:\\java\\file01\\abc.jpg");

    String destFilePath = "E:\java\file02";

    String destFileName = "abc02.jpg";

    FileUtils fileUtils = new FileUtils();

    //文件拷贝到新的位置并保存文件的日期。

    fileUtils.copyFile(file, new File(destFilePath,destFileName));

  • 拷贝文件到新的文件中

    拷贝文件到新的文件中并且保存最近修改时间

    public static void copyFile(File srcFile, File destFile)

    拷贝文件到新的文件中并且设置是否保存最近修改时间

    public static void copyFile(File srcFile, File destFile,boolean preserveFileDate)

  • 将一个目录拷贝到另一目录中,并且保存最近更新时间

    public static void copyDirectoryToDirectory(File srcDir, File destDir)
  • 拷贝整个目录到新的位置

    拷贝整个目录到新的位置,并且保存最近修改时间

    public static void copyDirectory(File srcDir, File destDir)

    拷贝整个目录到新的位置,并且设置是否保存最近修改时间

    public static void copyDirectory(File srcDir, File destDir,boolean preserveFileDate)

    拷贝过滤后的目录到指定的位置,并且保存最近修改时间

    public static void copyDirectory(File srcDir, File destDir,FileFilter filter)

    拷贝过滤后的目录到指定的位置,并且设置是否保存最近修改时间

    public static void copyDirectory(File srcDir, File destDir,FileFilter filter, boolean preserveFileDate)

  • 拷贝一个字节流到一个文件中,如果这个文件不存在则新创建一个,存在的话将被重写进内容

    public static void copyInputStreamToFile(InputStream source, File destination)

移动文件 / 文件夹

移动目录到新的目录并且删除老的目录
public static void moveDirectory(File srcDir, File destDir)
把一个目录移动到另一个目录中去
public static void moveDirectoryToDirectory(File src, File destDir, booleancreateDestDir)
移动文件到对应的文件中去moveFile
public static void moveFile(File srcFile, File destFile)
移动文件到对应的文件夹中去,可设置当目标文件夹不存在时是否创建新的文件夹
public static void moveFileToDirectory(File srcFile, File destDir, booleancreateDestDir)
移动文件或者目录到新的路径下,并且设置在目标路径不存在的情况下是否创建
public static void moveToDirectory(File src, File destDir, boolean createDestDir)

删除文件夹及文件

  • 删除指定文件

    删除指定文件,从不引发异常

    public static boolean deleteQuietly(File file)

    删除指定文件,不存在报异常

    public static void forceDelete(File file)

  • 递归删除文件夹,删除其包含的文件及子目录文件

    递归删除文件夹,删除其包含的文件及子目录文件

    public static void deleteDirectory(File directory)

    清空文件夹而不删除它

    public static void cleanDirectory(File directory)

如果父文件夹不存在,将创建父文件夹

public static void forceMkdir(File directory)
FileUtils.forceMkdir(new File("F:\\测试二\\测试文件夹"));

读取文件的内容到字符串

public static String readFileToString(File file)
public static String readFileToString(File file, String encoding)

把一个文件的内容转换成集合数组

把一个文件转换成字节数组
public static byte[] readFileToByteArray(File file)
把文件中的内容逐行的拷贝到一个对应编码的list<String>中去
public static List<String> readLines(File file, String encoding)
把文件中的内容逐行的拷贝到一个虚拟机默认编码的list<String>中去
public static List<String> readLines(File file)

把字符串写进对应的文件中

public static void writeStringToFile(File file, String data)
public static void writeStringToFile(File file, String data, String encoding)

把一个集合数组的内容写入到指定的文件中

把一个字节数组写入到指定的文件中
public static void writeByteArrayToFile(File file, byte[] data)
把集合中的内容根据对应编码逐项插入到文件中
public static void writeLines(File file, String encoding, Collection<?> lines)
把集合中的内容根据虚拟机默认编码逐项插入到文件中
public static void writeLines(File file, Collection<?> lines)
把集合中的内容根据对应字符编码和行编码逐项插入到文件中
public static void writeLines(File file, String encoding, Collection<?> lines, String lineEnding)
把集合中的内容根据对应行编码逐项插入到文件中
public static void writeLines(File file, Collection<?> lines, String lineEnding)

获取文件或者目录的大小

public static long sizeOf(File file)
public static long sizeOfDirectory(File directory)

文件修改日期的比较

测试指定文件的最后修改日期是否比reference的文件新
public static boolean isFileNewer(File file, File reference)
检测指定文件的最后修改时间是否在指定日期之前
public static boolean isFileNewer(File file, Date date)
检测指定文件的最后修改时间(毫秒)是否在指定日期之前
public static boolean isFileNewer(File file, long timeMillis)
检测指定文件的最后修改日期是否比reference文件的晚
public static boolean isFileOlder(File file, File reference)
检测指定文件的最后修改时间是否在指定日期之后
public static boolean isFileOlder(File file, Date date)
检测指定文件的最后修改时间(毫秒)是否在指定日期之后
public static boolean isFileOlder(Filefile, long timeMillis)

apache文件工具类的使用:org.apache.commons.io.FileUtils的更多相关文章

  1. Properties文件工具类的使用--获取所有的键值、删除键、更新键等操作

    有时候我们希望处理properties文件,properties文件是键值对的文件形式,我们可以借助Properties类操作. 工具类如下:(代码中日志采用了slf4j日志) package cn. ...

  2. Java常用工具类---IP工具类、File文件工具类

    package com.jarvis.base.util; import java.io.IOException;import java.io.InputStreamReader;import jav ...

  3. java文件工具类

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...

  4. 自动扫描FTP文件工具类 ScanFtp.java

    package com.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ja ...

  5. 读取Config文件工具类 PropertiesConfig.java

    package com.util; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io ...

  6. Property工具类,Properties文件工具类,PropertiesUtils工具类

    Property工具类,Properties文件工具类,PropertiesUtils工具类 >>>>>>>>>>>>>& ...

  7. Android FileUtil(android文件工具类)

    android开发和Java开发差不了多少,也会有许多相同的功能.像本文提到的文件存储,在Java项目和android项目里面用到都是相同的.只是android开发的一些路径做了相应的处理. 下面就是 ...

  8. Java 实现删除文件工具类

    工具代码 package com.wangbo; import java.io.File; /** * 删除目录或文件工具类 * @author wangbo * @date 2017-04-11 1 ...

  9. HTTP 下载文件工具类

    ResponseUtils.java package javax.utils; import java.io.ByteArrayInputStream; import java.io.File; im ...

  10. java下载文件工具类

    java下载文件工具类 package com.skjd.util; import java.io.BufferedInputStream; import java.io.BufferedOutput ...

随机推荐

  1. 使用Prometheus和Grafana监控RabbitMQ集群 (使用RabbitMQ自带插件)

    配置RabbitMQ集群 官方文档:https://www.rabbitmq.com/prometheus.html#quick-start 官方github地址:https://github.com ...

  2. Elasticsearch:理解 mapping 中的 null_value

    转载自:https://elasticstack.blog.csdn.net/article/details/114266732 null 不能被索引或搜索. 当字段设置为 null(或空数组或 所有 ...

  3. ELK 性能优化实践

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI5MTU1MzM3MQ==&mid=2247489814&idx=1&sn=6916f8b7 ...

  4. .Net 7内容汇总(3)--反射优化

    反射这玩意,一直以来都是慢的代名词.一说XXX系统大量的反射,好多人第一印象就是会慢. 但是呢,我们又不得不使用反射来做一些事情,毕竟这玩意可以说啥都能干了对吧. It's immensely pow ...

  5. 在 WPF 中实现融合效果

    1. 融合效果 融合效果是指对两个接近的元素进行高斯模糊后再提高对比度,使它们看上去"粘"在一起.在之前的一篇文章中,我使用 Win2D 实现了融合效果,效果如下: 不过 Win2 ...

  6. Docker MySql 查看版本的三种方法

    目录 Docker MySql 查看版本的三种方法 1.mysql -V命令查看版本 2.status命令查看版本 3.version命令查看版本 Docker MySql 查看版本的三种方法 1.m ...

  7. 如何通过 Java 代码隐藏 Word 文档中的指定段落

    在编辑Word文档时,我们有时需要将一些重要信息保密. 因此,可以隐藏它们以确保机密性. 在本文中,将向您介绍如何通过 Java 程序中的代码隐藏 Word 文档中的特定段落.下面是我整理的具体步骤, ...

  8. 改善C#程序的方法-1 操作字符串

    正确操作字符串 引言: 字符串是使用很频繁的一种数据类型. 如果使用不慎,则会为一次字符串操作所带来的额外性能开销而付出代价. 下面从这几个方面来探讨如何正确操作字符串: 1.确保尽量少的装箱,尽可能 ...

  9. Python对字符数据进行清洗

    import re mystr = "hahaAAA哈哈綂123./!#鱫愛" str1 = ''.join(re.findall('[\u4e00-\u9fa5]',mystr) ...

  10. 如何用Virtualbox搭建一个虚拟机

    序言 各位好啊,我是会编程的蜗牛,作为java开发者,我们肯定会接触Linux服务器,除了使用云服务搭建Linux服务器外,我们一般也可以在自己的电脑上安装虚拟机来搭建Linux服务器用于各种功能的验 ...