Apache Commons IO 是 Apache 开源基金组织提供的一组有关IO(Input/Output)操作的小框架,它是 Apache Commons 项目的一部分,专注于提供简单易用的 API,用于处理输入和输出操作。Apache Commons IO 是一个功能强大的 Java IO工具库,提供了丰富的 API 来简化文件和流的操作。通过使用 Commons IO 库,开发者可以更加简洁、高效地完成文件和流的相关任务。
Apache Commons IO 提供了一系列实用工具类和扩展类,极大地简化了文件和流的操作。
主要工具类包括:
工具类 | 说明 |
---|---|
FileUtils | FileUtils 是一个用于简化文件操作的工具类,提供了许多静态方法来处理文件和目录。 |
IOUtils | IOUtils 提供了用于操作流和字节的工具方法,简化了流的读取、写入和关闭操作。 |
FilenameUtils | FilenameUtils 提供了用于处理文件名和路径的工具方法。 |
FileFilterUtils | FileFilterUtils 提供了用于文件过滤的工具方法,可以创建符合特定条件的文件过滤器。 |
FileUtils 工具类的常用方法:
方法 | 说明 |
---|---|
copyFile(File srcFile, File destFile) | 复制文件。 |
copyDirectory(File srcDir, File destDir) | 复制目录及其内容。 |
delete(File file) | 删除文件。 |
deleteDirectory(File directory) | 删除目录及其所有内容。 |
readFileToString(File file, String encoding) | 读取文件内容,并将其作为一个字符串返回。 |
writeStringToFile(File file, String data, String charsetName, boolean append) | 将字符串写入到文件中。 |
添加 Maven 依赖
在项目的 pom.xml 配置文件中添加 Apache Commons IO 依赖。
XML
<!-- Apache Commons IO 依赖 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.17.0</version>
</dependency>
1、写入文件
使用 writeStringToFile(File file, String data, String charsetName, boolean append) 方法实现将字符串写入到文件中。
java
/**
* 写入文件
*/
@Test
public void writeFile()
{
try
{
String content = "您好,欢迎访问 pan_junbiao的博客"; //文件内容
String path = "src/main/resources/file/myBlog.txt"; //文件路径
//写入文件
FileUtils.writeStringToFile(new File(path), content, StandardCharsets.UTF_8);
System.out.println("成功写入文件");
} catch (Exception ex)
{
ex.printStackTrace();
}
}
2、读取文件
使用 readFileToString(File file, String encoding) 方法实现读取文件内容,并将其作为一个字符串返回。
java
/**
* 读取文件
*/
@Test
public void readFile()
{
try
{
String path = "src/main/resources/file/myBlog.txt"; //文件路径
//读取文件
String content = FileUtils.readFileToString(new File(path), StandardCharsets.UTF_8);
System.out.println(content);
} catch (Exception ex)
{
ex.printStackTrace();
}
}
执行结果:
3、复制文件
使用 copyFile(File srcFile, File destFile) 方法实现复制文件。
java
/**
* 复制文件
*/
@Test
public void copyFile()
{
try
{
String srcPath = "src/main/resources/file/myBlog.txt"; //文件路径
String destPath = "src/main/resources/file/myBlog2.txt"; //复制到文件路径
//复制文件
FileUtils.copyFile(new File(srcPath), new File(destPath));
System.out.println("成功复制文件");
} catch (Exception ex)
{
ex.printStackTrace();
}
}
4、删除文件
使用 delete(File file) 方法实现删除文件。
java
/**
* 删除文件
*/
@Test
public void deleteFile()
{
try
{
String destPath = "src/main/resources/file/myBlog2.txt"; //文件路径
//删除文件
FileUtils.delete(new File(destPath));
System.out.println("成功删除文件");
} catch (Exception ex)
{
ex.printStackTrace();
}
}