Apache Commons IO

Table of Contents

1. Commons IO 简介

Apache 的 Commons IO 库中包含了一些 IO 相关的实用类,使用它们可以使你的 Java 代码更加简洁。

要在 Maven 工程中使用它,加入下面内容到 pom.xml 中即可。

<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.4</version>
</dependency>

参考:
Apache Commons IO API Documentation: https://commons.apache.org/proper/commons-io/javadocs/api-release/index.html

2. FileUtils 和 IOUtils

这个库有很多实用的类,表 1 和表 2 分别是 FileUtils 类和 IOUtils 类中的常用方法的简单介绍。

Table 1: FileUtils 类中常用方法
FileUtils 类中常用方法 说明 实例
readLines 读取整个文件,按行保存在 List<String>中 List<String> lines = FileUtils.readLines(new File("test.txt"), "UTF-8");
writeLines 把 List<String>的内容写到文件中  
readFileToString 读取整个文件到 String 中 String content = FileUtils.readFileToString(new File("test.txt"), "UTF-8");
writeStringToFile 把字符串写入到文件中,文件不存在会创建它 FileUtils.writeStringToFile(new File("test.txt"), "This is file content.");
copyFile 复制文件到另一个文件,目标文件不存在会创建它 FileUtils.copyFile(new File("src.txt"), new File("dest.txt"));
copyFileToDirectory 复制文件到目录中,目标目录不存在会创建它 FileUtils.copyFileToDirectory(new File("test.txt"), new File("/tmp"));
copyURLToFile 保存 URL 为文件 FileUtils.copyURLToFile(new URL("http://www.baidu.com"), new File("baidu.html"));
copyDirectory 复制目录,目标目录不存在会创建它,存在则合并  
copyDirectoryToDirectory 复制目录到另一个目录下(作为它的子目录)  
cleanDirectory 清除目录中内存,不会删除目录本身  
deleteDirectory 递归地删除目录,目录不存在或者不是目录会抛异常  
deleteQuietly 删除文件或者目录(递归地),永不抛异常 FileUtils.deleteQuietly(new File("/tmp/fileOrDir"));
Table 2: IOUtils 类中常用方法
IOUtils 类中常用方法 说明 实例
copy 复制流  
toInputStream 字符串转为输入流 InputStream is = IOUtils.toInputStream("This is a String", "UTF-8");
toString 读取 InputStream/Reader 所有内容到 String 中 String str = IOUtils.toString(yourInputStream, "UTF-8");
toByteArray 读取 InputStream/Reader 所有内容到 byte[]中  
readLines 读取 InputStream/Reader 所有内容到 List<String>中  
writeLines 把 Collection<?>中内容写到 OutputStream/Writer  
closeQuietly 关闭流,忽略所有异常  
contentEquals 比较两个流内容是否相等  
contentEqualsIgnoreEOL 比较两个流内容是否相等,忽略换行符  

Author: cig01

Created: <2016-08-06 Sat>

Last updated: <2017-12-13 Wed>

Creator: Emacs 27.1 (Org mode 9.4)