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 类中的常用方法的简单介绍。
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")); |
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 | 比较两个流内容是否相等,忽略换行符 |