File:它是文件和目录路径的抽象表示
- 文件和目录是可以通过File封装成对象的
- 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径而已。它可以是存在的,也可以是不存在的。
构造方法:
方法名 | 说明 |
---|---|
File(String pathname) | 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例 |
File(String parent,String child) | 从父路径名字符串和子路径名字符串创建新的File实例 |
File(File parent,String child) | 从父抽象路径名和子路径名字符串创建型的File实例 |
//File(String pathname)
File f1 = new File("D:\\Software\\File\\test.txt");
System.out.println(f1);//输出:D:\Software\File\test.txt
//File(String parent,String child)
File f2 = new File("D:\\Software\\File","test.txt");
System.out.println(f2);//输出:D:\Software\File\test.txt
//File(File parent,String child)
File f3 = new File("D:\\Software\\File");
File f4 = new File(f3,"test.txt");
System.out.println(f4);//输出:D:\Software\File\test.txt
File类创建功能
方法名 | 说明 |
---|---|
public boolean createNewFile() | 当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件 |
public boolean mkdir() | 创建由此抽象路径名命名的目录 |
public boolean mkdirs() | 创建由此抽象路径名命名的目录,包括如何必需但不存在的父目录 |
public boolean createNewFile()
//创建一个文件
File f1 = new File("D:\\Software\\File\\test1.txt");
System.out.println(f1.createNewFile());
如果文件不存在,就创建文件,并返回ture
如果文件存在,就什么也不做,并返回false
public boolean mkdir()|
//创建一个目录(文件夹)
File f2 = new File("D:\\Software\\File\\test2");
System.out.println(f2.mkdir());
如果目录(文件夹)不存在,就创建目录(文件夹),并返回ture
如果目录(文件夹)存在,就什么也不做,并返回false
public boolean mkdirs()
//创建一个多级目录
File f3 = new File("D:\\Software\\File\\test3\\test33");
System.out.println(f3.mkdirs());//在没有test3的情况下,不能用mkdir
如果目录(文件夹)不存在,就创建目录(文件夹),并返回ture
如果目录(文件夹)存在,就什么也不做,并返回false
File类判断和获取功能
方法名 | 说明 |
---|---|
public boolean isDirectory() | 测试此抽象路径1名表示的File是否为目录 |
public boolean isFile() | 测试此抽象路径名表示File是否为文件 |
public boolean exists() | 测试此抽象路径名表示的File是否存在 |
public String getAbsolutePath() | 返回此抽象路径的绝对路径名字符串 |
public String getPath() | 将此抽象路径名转换为路径名字符串 |
public String getName() | 返回由此抽象路径名表示的文件或目录的名称 |
public String[] list() | 返回此抽象路径名表示的目录中的文件和目录的名称字符串数组 |
public File[] listFiles() | 返回此抽象路径名表示的目录中的文件和目录的File对象数组 |
测试:
开始前:
//创建一个文件
File f1 = new File("File\\test1.txt");
System.out.println(f1.isFile());//是不是文件
System.out.println(f1.isDirectory());//是不是目录
System.out.println(f1.exists());//存不存在
System.out.println("-------------");
System.out.println(f1.getAbsolutePath());//返回此抽象路径的绝对路径名字符串
System.out.println(f1.getName());//返回名称
System.out.println(f1.getPath());//将此抽象路径名转换为路径名字符串
System.out.println("-------------");
File f2 = new File("D:\\Software\\File");
String[] sa = f2.list();//目录列表的字符串
for(String s:sa){
System.out.println(s);
}
System.out.println("-------------");
//抽象路径名表示的目录中的文件和目录的File对象数组
File[] f = f2.listFiles();
for(File ff:f){
System.out.println(ff);
}
输出:
true
false
true
-------------
D:\Software\File\test1.txt
test1.txt
File\test1.txt
-------------
test1.txt
test2
test3.txt
-------------
D:\Software\File\test1.txt
D:\Software\File\test2
D:\Software\File\test3.txt
File类删除功能
方法名 | 说明 |
---|---|
public boolean delete() | 删除由此路径名表示的文件或目录 |
绝对路径和相对路径的区别
- 绝对路径:完整的路径名,不需要任何其他信息就可以定位它所表示的文件。例如:
D:\Software\File\test1.txt
- 相对路径:必须使用取自其他路径名的信息进行解释。
例如:myFile\test.txt
如果一个目录中有内容(目录,文件),不能直接删除。应该先删除目录中的内容,最后才能删除目录