【从零开始学Java | 第三十四篇】File

张开发
2026/4/15 11:48:47 15 分钟阅读

分享文章

【从零开始学Java | 第三十四篇】File
目录前言一、什么是File类二、File类的作用1.表示文件和目录2.操作文件和目录3.获取文件属性三、File的构造方法1. 通过字符串路径创建2. 通过父路径和子路径创3. 通过父 File 对象和子路径创建四、绝对路径和相对路径1. 绝对路径2. 相对路径前言在 Java 开发中文件操作是一个非常基础但又非常重要的知识点与IO流协作可以实现文件内容的读写。无论是读取配置文件、上传下载文件、创建目录还是遍历磁盘中的文件资源几乎都离不开 Java 中的File类。一、什么是File类在 Java 中File类位于java.io包下import java.io.File;File类主要用于表示文件和目录的路径名并对文件和目录进行一些基础的操作例如判断文件是否存在、创建文件或目录、删除文件或目录注意File 类本身并不负责读写文件内容它只是对文件和目录路径的抽象表示。比如File file new File(test.txt);这行代码并不意味着test.txt已经被创建了它只是表示“有这么一个路径对象”。二、File类的作用File类主要有三类作用1.表示文件和目录File对象既可以表示文件也可以表示文件夹。File f1 new File(a.txt); File f2 new File(D:/demo);f1可能表示一个文件f2可能表示一个目录具体要判断它是文件还是目录需要通过方法去判断。2.操作文件和目录File可以进行一些常见的管理操作例如创建文件创建目录删除文件判断是否存在判断是否是文件/目录3.获取文件属性通过File可以拿到很多文件相关信息比如文件名文件大小最后修改时间绝对路径父目录三、File的构造方法1. 通过字符串路径创建File file new File(D:/test/a.txt);这是最常见的写法。2. 通过父路径和子路径创File file new File(D:/test, a.txt);这种方式适合父目录和文件名分开管理的场景。3. 通过父 File 对象和子路径创建Fileparent new File(D:/test); File file new File(parent, a.txt);这种方式适合层级目录操作代码更清晰。四、绝对路径和相对路径1. 绝对路径绝对路径指的是从磁盘根目录开始的完整路径。例如File file new File(D:/project/test.txt);这就是绝对路径。优点是定位明确不容易出错缺点是可移植性较差。2. 相对路径相对路径是相对于当前项目运行位置而言的路径。例如File file new File(test.txt);这里的test.txt就表示当前项目运行目录下的test.txt。在 Java 项目中相对路径通常是相对于当前工程目录。五、File常用成员方法1.判断和获取方法名说明public boolean isDirectory()判断此路径名表示的File是否为文件夹public boolean isFile()判断此路径名表示的File是否为文件public boolean exists()判断此路径名表示的File是否存在public long length()返回文件的大小字节数量public String getAbsolutePath()返回文件的绝对路径public String getPath()返回定义文件时使用的路径public String getName()返回文件的名称带后缀public long lastModified()返回文件的最后修改时间时间毫秒值2.删除和创建方法名说明public boolean createNewFile()创建一个新的空的文件public boolean mkdir()创建单级文件夹public boolean mkdirs()创建多级文件夹public long delete()删除文件、空文件夹①createNewFile()细节1如果当前路径表示的文件是不存在的则创建成功方法返回trueFile f1 new File(D:\\aaa\\a.txt); boolean b f1.createNewFile(); System.out.println(b);细节2如果当前路径表示的文件是存在的则创建失败返回false细节3如果当前路径表示的父级路径不存在那么方法会有异常File f1 new File(D:\\aaa\\bbb\\a.txt); boolean b f1.createNewFile(); System.out.println(b);②mkdir()细节1windows系统下创建同名文件夹或文件方法会返回false细节2mkdir方法只允许创建单级目录要创建多级文件夹会返回falseFile f2 new File(D:\\aaa\\ccc\\ddd); boolean mkdir f2.mkdir(); System.out.println(mkdir);③mkdirs()创建多级文件夹也可以创建单级文件夹在底层是调用了mkdir以后使用可以直接使用该方法File f2 new File(D:\\aaa\\ccc\\ddd); boolean mkdirs f2.mkdirs(); System.out.println(mkdirs);④delete()细节1如果删除的是文件则直接删除不走回收站细节2如果删除的是空文件夹则直接删除不走回收站细节3如果删除的是有内容的文件夹则删除失败File f2 new File(D:\\aaa\\a.txt); boolean d f2.delete(); System.out.println(d);3.获取和遍历⭐⭐⭐⭐⭐方法名称说明public File[] listFiles()获取当前该路径下所有内容File f1 new File(D:\\aaa\\bbb); File[] files f1.listFiles(); for (int i 0; i files.length; i) { String fileName files[i].getName(); System.out.println(fileName);重点当调用者File表示的路径不存在时返回null当调用者File表示的路径是文件时返回null当调用者File表示的路径是一个空文件夹时返回一个长度为0的数组当调用者File表示的路径是一个有内容的文件夹时将里面所有文件和文件夹的路径放在File数组中返回当调用者File表示的路径是一个有隐藏文件的文件夹时将里面所有文件和文件夹的路径放在File数组中返回包含隐藏文件当调用者File表示的路径是需要权限才能访问的文件夹时返回null

更多文章