在 Java 编程中,文件操作是不可或缺的一部分。无论是读取配置文件、写入日志,还是处理用户上传的文件,文件操作都是我们日常开发中频繁使用的功能。为了简化文件操作,我们通常会在项目中创建一个名为 FileUtil
或 FileUtils
的工具类。本文将详细介绍 Java 中的文件操作,从 java.io.File
类到 RandomAccessFile
,再到第三方库如 Apache Commons IO 和 Hutool 的使用。
1. java.io.File
类
java.io.File
类是 Java 中专门用于文件操作的类。需要注意的是,File
类只能对文件本身进行操作,不能对文件内容进行读写。要操作文件内容,必须借助输入输出流(如 FileInputStream
和 FileOutputStream
)。
File
类主要用于文件和目录的创建、查找和删除等操作。它可以表示文件夹(目录)或文件。
1.1 构造方法
File
类提供了三种常用的构造方法:
File(String pathname)
:通过给定的路径字符串创建File
实例。File(String parent, String child)
:通过父路径字符串和子路径字符串创建File
实例。File(File parent, String child)
:通过父路径File
对象和子路径字符串创建File
实例。
/**
* File类的构造器
*/
private static void testFileConstructors() {
// 文件路径名
String path = "JavaSE/resourses/123.txt";
File file1 = new File(path);
// 文件路径名
String path2 = "JavaSE/resourses/1/2.txt";
File file2 = new File(path2); //-------------相当于JavaSE/resourses/1/2.txt
// 通过父路径和子路径字符串
String parent = "JavaSE/resourses/aaa";
String child = "bbb.txt";
File file3 = new File(parent, child); //--------相当于JavaSE/resourses/aaa/bbb.txt
// 通过父级File对象和子路径字符串
File parentDir = new File("JavaSE/resourses/aaa");
String child2 = "bbb.txt";
File file4 = new File(parentDir, child2); //--------相当于JavaSE/resourses/aaa/bbb.txt
}
1.2 常用方法
File
类的常用方法主要分为获取功能、判断功能、创建与删除功能、目录遍历等。
- 获取功能:
getAbsolutePath()
:返回文件的绝对路径。getPath()
:返回文件的构造路径。getName()
:返回文件或目录的名称。length()
:返回文件的长度(字节数)。
/**
* 获取功能
*/
private static void testGetFuncMetonds() {
File f = new File("JavaSE/resourses/aaa/bbb.java");
System.out.println("文件绝对路径:" + f.getAbsolutePath());
System.out.println("文件构造路径:" + f.getPath());
System.out.println("文件名称:" + f.getName());
System.out.println("文件长度:" + f.length() + "字节");
File f2 = new File("JavaSE/resourses/aaa");
System.out.println("目录绝对路径:" + f2.getAbsolutePath());
System.out.println("目录构造路径:" + f2.getPath());
System.out.println("目录名称:" + f2.getName());
System.out.println("目录长度:" + f2.length());
}
- 判断功能