Commons-IO框架

Commons IO 框架详解Commons IO 是 Apache 提供的 Java IO 工具库,它简化了 文件、流 和 路径 的操作,提高开发效率,减少 try-catch-finally 代码。

✅ 1. 依赖导入📌 1.1 Maven 依赖12345 commons-io commons-io 2.15.0

📌 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 开发的必备工具! 🚀

友情链接