1. File类基础与文件操作
在Java开发中,文件操作是最基础也是最重要的技能之一。File类作为java.io包中的核心类,为我们提供了与文件系统交互的能力。虽然名为File,但它不仅能表示文件,还能表示目录路径,是Java中处理文件和目录的主要途径。
1.1 创建File对象的三种方式
创建File对象是我们操作文件的起点,Java提供了三种常用的构造方法:
java复制// 方式1:直接使用完整路径
File file1 = new File("D:/workspace/test.txt");
// 方式2:父路径+子路径(字符串形式)
File file2 = new File("D:/workspace", "test.txt");
// 方式3:父路径(File对象)+子路径
File parent = new File("D:/workspace");
File file3 = new File(parent, "test.txt");
这三种方式各有适用场景:
- 第一种适合路径简单且固定的情况
- 第二种适合需要动态拼接路径的场景
- 第三种适合父路径需要重复使用的情况
注意:路径中的斜杠建议使用正斜杠"/"或双反斜杠"\",因为单反斜杠在Java字符串中表示转义字符。
1.2 路径处理的关键细节
在实际开发中,路径处理常常会遇到各种问题。以下是几个关键注意事项:
-
相对路径与绝对路径:
- 绝对路径:从根目录开始的完整路径,如"D:/workspace/test.txt"
- 相对路径:相对于当前工作目录的路径,如"src/main/resources/config.properties"
-
路径分隔符:
- Windows系统使用反斜杠"",Unix/Linux使用正斜杠"/"
- 推荐使用File.separator保证跨平台兼容性:
java复制String path = "workspace" + File.separator + "test.txt";
-
路径标准化:
- 使用getCanonicalPath()获取规范路径(解析符号链接和相对路径)
- 使用getAbsolutePath()获取绝对路径(不解析符号链接)
1.3 文件基本操作
创建File对象后,我们可以进行各种文件操作:
java复制File file = new File("test.txt");
// 检查文件是否存在
if(file.exists()) {
// 获取文件信息
System.out.println("文件名:" + file.getName());
System.out.println("文件大小:" + file.length() + "字节");
System.out.println("最后修改时间:" + new Date(file.lastModified
