Java File 文件操作类超全教程 | 路径处理、文件创建删除、递归遍历实战
一、前言做 Java 开发时本地文件、文件夹读写、目录遍历是高频需求。java.io.File是 Java 专门用来管理文件 / 文件夹路径的核心类它只负责文件元信息操作不具备文件内容读写能力文件内容读取写入需要配合 IO 流。 本文整合 File 全部 API、路径规则、常用实战案例、递归遍历代码以及开发踩坑点零基础也能看懂可直接复制使用。二、File 基础对象创建与路径规则1、三种构造方法File 对象仅仅代表一个路径对应的文件 / 文件夹可以真实存在也可以不存在。// 方式1传入完整路径字符串 File f1 new File(D:\\demo\\test.txt); // 方式2父路径字符串 子文件名 File f2 new File(D:\\demo, test.txt); // 方式3父File对象 子文件名推荐路径拼接更稳定 File parent new File(D:\\demo); File f3 new File(parent, test.txt);2、路径两种写法Windows 路径转义\\是转义反斜杠也可以直接写/无需转义跨平台兼容性更好。绝对路径从磁盘根目录完整路径例如D:/demo/test.txt固定指向某一处文件。相对路径相对于当前项目根目录移植性更强直接写文件名即可。方法功能说明exists()判断当前路径的文件 / 文件夹是否存在isFile()判断是否为普通文件必须存在才返回 trueisDirectory()判断是否为文件夹必须存在才返回 true四、文件 / 文件夹 创建 删除 API创建方法区分极易混淆createNewFile()只创建文件不能创建文件夹文件已存在返回 falsemkdir()仅创建单级文件夹多级路径创建失败mkdirs()创建多级文件夹日常开发首选删除方法delete()删除文件 / 空文件夹无法直接删除内部带有文件的文件夹。// 创建文件 File file new File(demo.txt); file.createNewFile(); // 创建多级文件夹 File dir new File(a/b/c); dir.mkdirs(); // 删除文件 file.delete();五、文件基础信息获取 APIlength()获取文件字节大小文件夹调用返回 0getName()获取文件 / 文件夹名称getAbsolutePath()获取完整绝对路径getPath()获取构造方法传入的原始路径六、目录遍历核心 listFiles ()方法作用File[] listFiles()获取当前文件夹下一级所有文件 / 文件夹 File 对象数组关键避坑规则重点路径不存在、路径是文件、无访问权限 → 返回null遍历前必须判空否则空指针报错空文件夹 → 返回长度为 0 的空数组不会返回 null拓展递归练习不死神兔斐波那契递归基础算法题巩固递归思想// 获取第n个月兔子对数 public static int getRabbitNum(int month){ if(month 1 || month 2){ return 1; } return getRabbitNum(month - 1) getRabbitNum(month - 2); }八、开发避坑总结面试高频路径推荐使用/避免\\转义书写繁琐使用listFiles()前必须判断是否为 null防止空指针异常delete()不能直接删除存有文件的文件夹只能递归清空后删除创建 API 不可混用createNewFile()创建文件mkdirs()创建文件夹递归遍历层级过深会出现栈溢出超大目录建议使用 NIO 非递归遍历File 类仅操作文件路径、属性不能读写文件内容文件读写需要 IO 字符 / 字节流。九、文末总结File 是 Java IO 体系的前置基础日常文件上传、日志处理、本地资源读取都离不开它。掌握构造方法、路径规则、增删 API 后递归遍历是核心难点。下一篇我会分享 Java IO 字节流、字符流文件读写教程。