概述
Java.io.File 类是文件和目录路径名称的抽象表示,主要用于文件和目录的创建、查找和删除等操作。它是文件和目录路径名的抽象表示,文件和目录可以通过 File 封装成对象,对于 File 而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名,该路径下的文件可以存在也可以不存在。在正式学习 File 类的使用之前,非常有必要了解一下相对路径和绝对路径的相关概念,这将贯穿在后面的章节。
- 相对路径:一般是从当前目录开始,可使用
../来表示上层目录,可重复使用,是开发工作中最常使用的。 - 绝对路径:从文件系统的根目录开始,直到所需要的文件时截止,是一个完整的路径。在 Windows 中指从盘符开始的路径。
常用API
构造方法
| 方法名 | 介绍 |
|---|---|
public File(String name) | 根据文件路径名创建文件对象 |
public File(String parent,String child) | 根据父路径名字符串和子路径名字符串创建文件对象 |
public File(File parent,String child) | 根据父路径对应文件对象和子路径名字符串创建文件对象 |
\,而在 Linux 系统中是 /,Java 是一个跨平台语言,如果我们直接将路径名写成绝对,那么在 Windows 上能运行的程序,可能在 Linux 系统内无法正常运行。
故为了跨平台的兼容性,一般都使用提供的构造方法来进行拼接。
那么有些时候必须要使用这个分隔符,该怎么做呢?在 Java 中提供了 File.separator 属性来根据当前运行的操作系统,获取文件分隔符。
判断
| 方法名 | 介绍 |
|---|---|
| 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() | 获取文件的最后修改时间(时间毫秒值) |
创建、删除
| 方法名 | 介绍 |
|---|---|
| public boolean createNewFile() | 创建一个新的空文件 |
| public boolean mkdir() | 创建单级文件夹 |
| public boolean mkdirs() | 创建多级文件夹 |
| public boolean delete() | 删除文件、空文件夹 |
获取多个信息
| 方法名 | 介绍 |
|---|---|
| public String[] list() | 获取当前该路径下所有文件名 |
| public String[] list(FilenameFilter filter) | 利用文件名过滤器获取当前该路径下所有文件名 |
| public static File[] listRoots() | 列出可用的文件系统根 |
| public File[] listFiles() | 获取当前该路径下所有内容 |
| public File[] listFiles(FileFilter filter) | 利用文件过滤器获取当前该路径下所有内容 |
| public File[] listFiles(FilenameFilter filter) | 利用文件名过滤器获取当前该路径下所有内容 |
- FileFilter:文件过滤器,是一个接口,用于抽象路径名(File对象)的过滤器
- 接口里唯一的抽象方法:
boolean accept(File pathname)测试 pathname 是否应该包含在当前 File 目录中 若符合则返回true。 - 参数
(File pathname):使用ListFiles方法遍历目录后 得到的每一个文件对象
- 接口里唯一的抽象方法:
- FilenameFilter:文件名称过滤器,也是一个接口
- 接口里的唯一抽象方法:
boolean accept(File dir, String name)测试 name 是否应该包含在当前 dir 目录中 若符合则返回true。 - 参数
(File dir, String name):dir 是文件所在的目录,name 是匹配的名称
- 接口里的唯一抽象方法:
accept()方法返回的是一个布尔值:- true:将传递过去的File对象保存到File数组中(放行)
- false:不将传递过去的File对象保存到File数组中
API使用
- 获取
- 判断
- 创建、删除
- 获取多个信息