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");
}
});