java.io.File类
文件和目录路径名的抽象表示形式
java把电脑中的文件和文件夹(目录)封装为了一个File类,可使用File类对文件和文件夹进行操作
可使用File类的方法实现:
创建一个文件或文件夹
删除文件或文件夹
判断文件或文件夹是否存在
对文件夹进行遍历
获取文件夹的大小
File类是一个与系统无关的类,任何的操作系统都可以使用File类中的方法
静态成员变量
String pathSeparator = File.pathSeparator;//系统路径分隔符,Windows系统是分号,Linux系统是冒号
String separator = File.separator;//文件名分隔符,Windows系统是反斜杠\,Linux系统是正斜杠/
//考虑兼容性,路径不能写死
/*
D:\demo\aaa\a.txt windows
D:/demo/aaa/a.txt linux
"D:"+File.separator+"demo"+File.separator+"aaa"+File.separator+"a.txt"
*/
绝对路径和相对路径
- 绝对路径:完整的路径,以盘符开始
d:\a.txt
D:\demo\aaa\a.txt - 相对路径:简化的路径
指相对于当前项目的根目录,如果使用当前项目的根目录,则当前项目根目录可以省略
#路径不区分大小写
#反斜杠是转义字符,两个反斜杠代表一个普通反斜杠
构造方法:
File(String pathname) 通过将给定路径名字符串转换成抽象路径名来创建一个新File类
- String pathname:字符串的路径名称
路径可以文件夹、文件结尾
路径可以是相对或绝对的路径
路径可存在也可不存在(创建File对象,只是把字符串路径封装为File对象,不考虑路径真假)
private static void show01(){
//真实存在的路径
File f1 = new File("E:\\demowin\\src\\o3Stream");
System.out.println(f1);//输出:E:\demowin\src\o3Stream
//不存在的路径
File f2 = new File("E:\\demowin\\src\\o3Stream\\a.txt");
System.out.println(f2);//输出:E:\demowin\src\o3Stream\a.txt
//真实存在的路径
File f3 = new File("a.txt");
System.out.println(f1);//输出:a.txt
//均输出路径名,原本创建的只是对象,输出时重写了Object类的toString()方法
}
File(String parent,String child):根据parent路径字符串和child路径字符串创建一个新File实例
- String parent:父路径
- String child:子路径
使用灵活!!!
File(File parent,String child):根据parent抽象路径名和child路径名字符串创建一个新File实例
不光使用灵活,还可以用File方法对父路径进行一些操作,再使用路径创建对象
其他方法:
获取功能方法:
public String getAbsolutePath():返回此file的绝对路径名字符串
public String getPath():将此file转换为路径名字符串(获取传递的路径名字符串)
toString()方法调用的就是getPath()方法
public String getName():返回由此file表示的文件或目录的名称(l路径最后一级,不管是文件还是文件夹
public long length():返回由此file表示的文件的长度
获取的是构造方法指定的文件的大小,以字节为单位
文件夹没用大小概念,不能获得文加夹大小,也返回0
若构造方法给出的路径名不存在,length返回0
判断功能方法
public boolean exists():此File表示的文件或目录是否存在
public boolean isDirectory():此File表示是否为目录
public boolean isFile():此File表示的是否为文件
创建删除功能方法
public boolean createNewFile():当且仅当具有该名称的文件上不存在的时候,创建一个新的空文件
public boolean delete():删除由此File表示的文件或目录
public boolean mkdir():创建此File表示的目录
public boolean mkdir():创建此File表示的目录,包括任何必需但不存在的父目录
遍历功能
public String[] list():返回一个String数组,表示该File目录中所有子文件或目录
public File[] Filelists():返回一个File数组,表示该File目录中所有子文件或目录