28 - Java File类

File 类

  • java.io 包下,只能操作文件和目录,不能访问文件内容本身。
  • 全局静态常量
    • 路径分隔符:char pathSeparatorChar、String pathSeparator。
    • 文件名称分隔符:char separatorChar、String separator。
  • 构造器File(String pathname):将给定的路径名字符串 pathname 转换为抽象路径名来创建 File 对象File(String parent, String child):File(File parent, String child):根据 parent 抽象路径名和 child 路径名字符串创建 File 对象。

访问文件和目录

访问文件名

  • File file = new File("C:/abc/123.txt")。
  • String getName():返回此 File 对象所表示的文件名目录名,123.txt。
  • String getPath():返回此 File 对象所对应的路径名,C:/abc/123.txt。
  • File getAbsoluteFile():返回此 File 对象的绝对路径。
  • String getAbsolutePath():返回此 File 对象所对应的绝对路径名,C:/abc/123.txt。
  • File getParentFile():返回此 File 对象所对应的父路径,如果没有,返回 null,C:/abc。
  • String getParent():返回此 File 对象所对应的父路径名。

检测文件

  • boolean exists():判断 File 对象所对应的文件或目录是否真实存在。
  • boolean isFile():判断 Hie 对象所对应的是否是文件。
  • boolean isDirectory():判断 File 对象所对应的是否是目录。
  • boolean isAbsolute():判断 File 对象是否是绝对路径。
  • boolean canRead():判断 File 对象所对应的文件和目录是否可读。
  • boolean canWrite():判断 File 对象所对应的文件和目录是否可写。
  • boolean canExecute():判断应用程序是否可以执行此 File 对象所对应的文件或目录。

获取常规文件信息

  • long length():获取文件内容的长度(单位为字节)(如果此路径名表示一个目录,则返回值是不确定的)。
  • long lastModified():获取文件的最后修改时间。

操作文件

  • boolean createNewFile():当此 File 对象所对应的文件不存在但对应的父路径存在 时,新建 一个该 File 对象所指定的文件。
  • static File createTempFile(String prefix, String suffix):在默认的临时文件目录中创建一个临时的文件,使用给定前缀、 系统生成的随机数和给定后缀作为文件名(prefix 参数至少是 3 字节长,suffix 参数为 null 时,将使用默认的后缀".tmp")。
  • static File createTempFile(String prefix, String suffix, File directory):在 directory 所指定的目录中创建一个临时的文件,使用给定前缀、 系统生成的随机数和给定后缀作为文件名。
  • boolean mkdir():当此 File 对象所对应的目录不存在但对应的父目录存在 时,新建一个 File 对象所对应的目录。
  • boolean mkdirs():新建一个 File 对象所对应的目录包括 所有必需但不存在的父目录)。
  • boolean delete():删除 File 对象所对应的文件或目录。
  • void deleteOnExit():注册一个删除钩子,指定当 Java 虚拟机退出时,删除 File 对象所对应的文件或目录。
  • boolean renameTo(File dest):用指定的路径名重新命名对 File 对象所对应的文件或路径。
  • File\[\] listFiles():列出 File 对象的所有子文件和子目录的绝对路径,返回 File 数组。
  • String\[\] list():列出 File 对象的所有子文件名和子目录的名称,返回 String 数组。
  • static File\[\] listRoots():列出系统所有的根路径。

文件过滤器

  • String\[\] list(FilenameFilter filter)。
  • File\[\] listFiles(FilenameFilter filter):列出 File 对象的所有符合条件的子文件和目录,返回 File 数组。
  • FilenameFilter 接口中的抽象方法:boolean accept(File dir, String name)。
  • 底层依次对指定 File 的所有子目录或者文件进行迭代,如果该方法返回 true,则 list() 方法会列出该子目录或者文件。
java 复制代码
// 列出 D:\JavaApps 目录下以".java"结尾的文件(不包括子目录下)
File dir = new File("D:/JavaApps");
File[] fs = dir.listFiles(new FilenameFilter() {
    // 底层传给 dir 的是 this, 传给 name 的是 this 中的子文件名或子目录名
    public boolean accept(File dir, String name) {
        return new File(dir, name).isFile() && name.endsWith(".java");
    }
});
相关推荐
西索斯coding7 分钟前
doubao-seed-2.1-turbo 调用一直 401 怎么办?pro 版同样的 Key 却正常——5 分钟排查定位指南
java·服务器·数据库·ai
旧梦952713 分钟前
Java SortedMap 接口详解:从入门到实战
java·开发语言
莫陌尛.17 分钟前
Java_this构造方法
java·开发语言
2601_9622972537 分钟前
C# vs Java vs Python:YOLO工业部署性能对比实战
java·python·c·工业视觉·性能对比
计算机毕设定制辅导-无忧学长38 分钟前
《基于SpringBoot的马术俱乐部管理系统》
java·spring boot·后端
Dreams°1231 小时前
【Java后端+Vue前后端分离:内网正常、公网访问异常|5个高频经典踩坑完整复盘】
java·开发语言·vue.js
学长毕业设计1 小时前
基于SpringBoot的民间艺术传承管理系统(源码+文档+讲解视频)
java·spring boot·后端
小蒜学长1 小时前
基于Springboot+Vue的环保行动志愿者招募系统设计与实现(代码+数据库+LW)
java·数据库·vue.js·spring boot·后端
frjc1 小时前
如何在 IDEA 中打开并运行已有Java项目
java·ide·intellij-idea
java_nnnn2 小时前
文件操作和IO
java