Commons IO 框架详解Commons IO 是 Apache 提供的 Java IO 工具库,它简化了 文件、流 和 路径 的操作,提高开发效率,减少 try-catch-finally 代码。
✅ 1. 依赖导入📌 1.1 Maven 依赖12345
📌 1.2 手动下载从 Apache 官网 下载 JAR 包,添加到 lib 目录。
在项目中创建一个文件夹:lib
将commons-io-2.6.jar文件复制到lib文件夹
在jar文件上点右键,选择“Add as library”,点击OK
在类中导包使用
✅ 2. Commons IO 核心工具类以下是 Commons IO 提供的 核心工具类 及其作用:
工具类
作用
FileUtils
文件操作(复制、删除、读取、写入等)
IOUtils
流操作(复制、关闭、转换等)
FilenameUtils
文件路径操作(获取扩展名、文件名等)
FileSystemUtils
磁盘空间信息
LineIterator
逐行读取文件
✅ 3. FileUtils(文件操作)
方法
作用
示例
copyFile(File src, File dest)
复制文件
FileUtils.copyFile(new File("a.txt"), new File("b.txt"));
copyDirectory(File src, File dest)
复制目录
FileUtils.copyDirectory(new File("D:/source"), new File("D:/dest"));
readFileToString(File file, String encoding)
读取文件内容
String content = FileUtils.readFileToString(new File("test.txt"), "UTF-8");
write(File file, String data, String encoding)
写入文件
FileUtils.write(new File("output.txt"), "Hello", "UTF-8");
forceDelete(File file)
删除文件或目录
FileUtils.forceDelete(new File("unwanted.txt"));
deleteDirectory(File directory)
删除整个目录
FileUtils.deleteDirectory(new File("D:/oldFolder"));
✅ 4. IOUtils(流操作)
方法
作用
示例
toString(InputStream in, String encoding)
读取输入流
String content = IOUtils.toString(new FileInputStream("test.txt"), "UTF-8");
copy(InputStream in, OutputStream out)
复制流
IOUtils.copy(new FileInputStream("a.txt"), new FileOutputStream("b.txt"));
closeQuietly(Closeable closeable)
关闭流(不抛异常)
IOUtils.closeQuietly(inputStream);
✅ 5. FilenameUtils(文件路径操作)
方法
作用
示例
getExtension(String filename)
获取文件扩展名
String ext = FilenameUtils.getExtension("test.txt"); // txt
getBaseName(String filename)
获取文件名(无扩展名)
String name = FilenameUtils.getBaseName("test.txt"); // test
getFullPath(String filename)
获取完整路径
String path = FilenameUtils.getFullPath("D:/folder/test.txt"); // D:/folder/
✅ 6. FileSystemUtils(磁盘空间信息)
方法
作用
示例
freeSpaceKb(String path)
获取磁盘剩余空间(KB)
long space = FileSystemUtils.freeSpaceKb("C:");
✅ 7. LineIterator(逐行读取文件)
方法
作用
示例
FileUtils.lineIterator(File file, String encoding)
逐行读取大文件
见下方示例
📌 逐行读取示例12345678910111213141516171819import org.apache.commons.io.FileUtils;import org.apache.commons.io.LineIterator;import java.io.File;import java.io.IOException;public class LineIteratorExample { public static void main(String[] args) throws IOException { File file = new File("largeFile.txt"); LineIterator it = FileUtils.lineIterator(file, "UTF-8"); try { while (it.hasNext()) { System.out.println(it.nextLine()); } } finally { it.close(); // 关闭迭代器,释放资源 } }}
🔹 适用场景:
适合读取大文件,防止 OutOfMemoryError。
替代 BufferedReader,代码更简洁。
✅ 8. 总结
工具类
功能
FileUtils
文件操作(复制、删除、读取、写入)
IOUtils
流操作(复制、关闭、转换)
FilenameUtils
路径解析(获取文件名、扩展名)
FileSystemUtils
磁盘空间查询
LineIterator
逐行读取大文件
📌 Commons IO 极大简化了 Java IO 操作,是 Java 开发的必备工具! 🚀