File类是java.io包下的核心类,仅用于操作文件/目录的“元数据”(如路径、大小、创建时间),不能读写文件内容。

一、核心作用

• 表示文件(.txt/.java等)或目录(文件夹)的路径。

• 对文件/目录执行基础操作:创建、删除、判断是否存在、获取属性(大小、修改时间)等。

二、创建File对象

创建时仅初始化路径,不实际创建文件/目录,路径可分为绝对路径和相对路径:

1. 绝对路径:从根目录(如C盘、/Users)开始的完整路径,例:new File("D:/test.txt")(Windows)、new File("/Users/test.txt")(Mac/Linux)。

2. 相对路径:从当前项目根目录开始的路径,例:new File("src/main/resources/config.properties"),常用于项目内资源访问。

3. 父目录+子路径:拆分路径更灵活,例:new File("D:/test", "a.txt")(表示D盘test目录下的a.txt)。

三、常用方法(按功能分类)

1. 判断类方法(返回boolean)

• exists():判断File表示的文件/目录是否实际存在。

• isFile():判断是否为文件(需先确保exists()为true,否则返回false)。

• isDirectory():判断是否为目录(同理需先验证存在)。

• canRead()/canWrite():判断文件/目录是否可读/可写。

2. 创建类方法(返回boolean)

• createNewFile():创建文件,若文件已存在则返回false;需处理IOException(必须捕获或抛出)。

• mkdir():创建单层目录,若父目录不存在则创建失败(返回false),例:想创建“D:/a/b”,若D:/a不存在则失败。

• mkdirs():创建多层目录(推荐),自动创建不存在的父目录,例:“D:/a/b”会先创建a,再创建b。

3. 删除类方法

• delete():删除文件或空目录;若目录非空(含子文件/子目录),则删除失败(返回false)。

• deleteOnExit():程序退出时自动删除文件/目录,常用于临时文件清理。

4. 获取属性方法

• getName():获取文件/目录的名称(不含路径),例:new File("D:/test/a.txt").getName() 返回“a.txt”。

• getPath():获取创建File时传入的路径(可能是相对路径)。

• getAbsolutePath():获取绝对路径(无论创建时用相对还是绝对路径,均返回完整路径)。

• length():获取文件的大小(单位:字节);若为目录,返回值不确定(不同系统可能返回0或目录占用空间)。

• lastModified():获取文件/目录的最后修改时间(单位:毫秒,需转换为日期格式使用)。

5. 目录遍历方法

• list():返回目录下所有文件/目录的名称数组(String[]),若不是目录则返回null。

• listFiles():返回目录下所有文件/目录的File对象数组(File[]),可进一步操作每个子项(推荐,功能更强)。

四、关键注意事项

1. 路径分隔符:Windows用\(代码中需写\\转义),Mac/Linux用/;可通过File.separator自动适配系统,例:"D:" + File.separator + "test.txt"。

2. 异常处理:createNewFile()、listFiles()等方法可能抛出IOException,必须通过try-catch捕获或在方法上声明throws。

3. 目录删除限制:delete()无法直接删除非空目录,需先递归删除目录内所有子文件/子目录,再删除父目录。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐