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");
    }
});
相关推荐
嘻哈∠※5 小时前
0061基于 SpringBoot 的投稿与稿件处理系统设计与实现
java·spring boot·后端
白狐_7985 小时前
408数据结构第8章:排序②——性质对比秒杀、场景选择与外部排序
java·数据结构·算法
zander2586 小时前
LeetCode 84:柱状图中的最大矩形——单调栈如何确定左右边界
java·数据结构·算法
码匠许师傅6 小时前
【C++ 面试真题】聊聊 C++ 的拷贝构造与拷贝赋值
java·c++·面试
极创信息8 小时前
系统安全隐患全方位排查方案:标准化渗透测试全流程
java·opencv·struts·数据挖掘·eclipse·语音识别·hibernate
汉字萌萌哒8 小时前
2019CCF-CSP入门级C++试题解析
java·开发语言·c++
喜欢的名字被抢了9 小时前
程序出问题怎么查,以及如何让它不掉线
java·运维·数据库
数据知道9 小时前
反序列化漏洞:Java、PHP、Python 三条线各讲透
java·网络·python·安全·网络安全·php
2601_9499506310 小时前
Java 面试准备,用练题簿把“背过八股”变成“真正会答”
java·开发语言·面试·刷题·小程序推荐
Rain的Java大神之路10 小时前
MQ重复消费问题怎么解决
java·经验分享·后端·面试·架构·rabbitmq·rocketmq