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");
    }
});
相关推荐
艾迪的技术之路10 分钟前
redisson使用lock导致死锁问题
java·后端·面试
今天背单词了吗98028 分钟前
算法学习笔记:8.Bellman-Ford 算法——从原理到实战,涵盖 LeetCode 与考研 408 例题
java·开发语言·后端·算法·最短路径问题
天天摸鱼的java工程师31 分钟前
使用 Spring Boot 整合高德地图实现路线规划功能
java·后端
东阳马生架构1 小时前
订单初版—2.生单链路中的技术问题说明文档
java
咖啡啡不加糖1 小时前
暴力破解漏洞与命令执行漏洞
java·后端·web安全
风象南1 小时前
SpringBoot敏感配置项加密与解密实战
java·spring boot·后端
DKPT1 小时前
Java享元模式实现方式与应用场景分析
java·笔记·学习·设计模式·享元模式
Percep_gan1 小时前
idea的使用小技巧,个人向
java·ide·intellij-idea
缘来是庄1 小时前
设计模式之迭代器模式
java·设计模式·迭代器模式