File
·File
唯一一个指向磁盘的类型File
java.io.File;
public class File
extends Object
implements Serializable, Comparable<File>
是文件和目录路径名的抽象表示形式。
文件分隔符
windows(\)
由于java语言中\的特殊含义所以使用"\\“表示”\"。
unix Linux (/)
由于java语言中\的特殊含义所以使用"\/“表示”/"。
API
成员变量 全部是静态的
String pathSeparator();
cahr pathSeparatorChar();
路径分隔符 用来分割多个路径
返回
windows下就返回 ;
Linux或unix 下就返回 :
String separator();
char separatorChar();
名称分割符 用来分割路径中的文件夹名
返回
windows下就返回 \
Linux或unix 下就返回 /
构造方法
假设文件树结构
D:\
file1.txt
AAA\
file2.txt
File file = new File("D:\\file1.txt");//指向file1.txt
File file = new File("D:\\AAA","file2.txt");//指向文件2 当使用父-子的构造器形式时,可以省略父末端的分隔符。
获取文件属性
1.权限信息
可读 canRead();
可写 canWrite();
可执行 canExecute();
设置文件(读 写 可执行)权限
以set开头的一系列方法
2.文件状态信息
是否存在 exists();
是否隐藏 isHidden();
3.文件类型信息
是否是文件夹 isDirectory();
是否是文件 isFile();
4.文件路径信息
获取绝对路径字符串 String getAbsolutePath();
获取绝对路径的对象形式 File getAbsoluteFile();
相当于:new File(this.getAbsolutePath());
获取规范路径名字符串 String getCanonicalPath() 返回操作系统相匹配的路径名。
获取规范路径名对象 File getCanonicalFile();
等同于:new File(this.getCanonicalPath());
String getName()
返回由此抽象路径名表示的文件或目录的名称。
String getParent()
返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回 null。
文件操作
创建文件
1.创建一个文件
boolean createNewFile(); 当pathname指向的文件不存在的时候,按照pathname的指向创建一个文件。
2.创建文件夹
boolean mkdir() 创建pathname指向的文件夹,但是path上有不存在的文件夹时,创建失败。
boolean mkdirs() 创建path上的所有不存在的文件夹
删除文件
boolean delete(); 删除此抽象路径名表示的文件或目录,彻底删除,而不是放入回收站。
文件比较
boolean equals(); 比较两个对象的指向是否相等;不比较对象地址,比较对象的内容。
== 比较地址和内容
File list相关
String[] list()
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
String[] list(FilenameFilter filter)
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles()
返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。
File[] listFiles(FileFilter filter)
返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
File[] listFiles(FilenameFilter filter)
返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。
static File[] listRoots()
列出可用的文件系统根。
相关接口 (实现对文件的过滤操作)
FilenameFilter 测试指定文件是否应该包含在某一文件列表中。
FileFilter 测试指定抽象路径名是否应该包含在某个路径名列表中。
在list相关的方法中使用此 接口作为参数,使用内部匿名类
File[] files = file1.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
return false;
}
});
实现过滤的控制重写方法 accept 里的内容即可。
(File:文件 Filename:文件名 Filter:过滤 )