

学习一个类一般从构造方法开始学
File类介绍
File类的构造方法
| 方法名 | 说明 |
|---|---|
| File(String pathname) | 通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例 |
| File(String parent, String child) | 从父路径名字符串和子路径名字符串创建新的 File实例 |
| File(File parent, String child) | 从父抽象路径名和子路径名字符串创建新的 File实例 |
示例代码
public static void main(String[] args) {
// File(String pathname) 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例
String path="c:/whu/a.txt";
File file=new File(path);//封装从File对象才能使用File类中的方法来操作文件
// File(String parent, String child) | 从父路径名字符串和子路径名字符串创建新的File实例
String path1="c:/whu";
String filename="a.txt";
File file1 = new File(path1, filename);//就是把两个路径拼接了一下
System.out.println(file1);//"c:\whu\a.txt"
// File(File parent, String child) | 从父抽象路径名和子路径名字符串创建新的File实例
File file2 = new File("c:/whu");
String filename2="a.txt";
File file3=new File(file2,filename2);//File和String的拼接
System.out.println(file3);//"c:\whu\a.txt"
}
绝对路径
是一个完整的路径,从盘符开始
相对路径
是一个简化的路径,相对当前项目下的路径
示例代码
public static void main(String[] args) {
//绝对路径:这个路径固定不变了
File file=new File("D:/whu/a.txt");
//相对路径:路径其实是可以变化的(相对当前项目)(模块比项目小一级)
//当前项目下的a.txt
File file1 = new File("a.txt");//与本模块文件夹同级(也即在filemodule文件夹父目录下)
//当前模块下的a.txt
File file2 = new File("filemodule/a.txt");//当前module名为"filemodule"
}
方法分类
| 方法名 | 说明 |
|---|---|
| public boolean createNewFile() | 当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件 |
| public boolean mkdir() | 创建由此抽象路径名命名的目录 (创建一个单级文件夹) |
| public boolean mkdirs() | 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录(创建一个多级文件夹) |
public boolean createNewFile() | 当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件 |
.
文件不存在创建成功返回true、文件已经存在创建失败返回false
createNewFile方法只能创建文件不能创建目录
public static void main(String[] args) throws IOException {
// 1. public boolean createNewFile() | 当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件
//1.1 文件存在,创建失败,返回false
//1.2 文件不存在,创建成功,返回true
//1.3 createNewFile方法不管路径有没有后缀名,只能创建文件
File file1 = new File("c:/whu/a.txt");//注意创建前 真有这个文件的存在
boolean result1 = file1.createNewFile();
System.out.println(result1);//false 删除该文件再运行:true
//尝试创建目录 net
System.out.println(new File("c:/whu/net").createNewFile());//true 一查看是创建了一个没有后缀名的文件net
}
mkdir 创建一个单级文件夹
new File(“c:/whu/net”).mkdir(); 其直接上级目录whu下有普通文件存在时可能创建失败(有空目录时没事)
注意:1.只能创建单级文件夹,不能创建多级文件夹、2.不管路径最后有没有后缀名,只能创建目录,不能创建文件
public static void main(String[] args) throws IOException {
// public boolean mkdir() 创建一个单级文件夹
//注意:
//1.只能创建单级文件夹,不能创建多级文件夹
//2.不管路径最后有没有后缀名,只能创建目录,不能创建文件
File file = new File("c:/whu/net/software/java");
boolean result = file.mkdir();
System.out.println(result);//false 只能创建单级文件夹,上面路径只有whu目录存在,属于多级目录创建
file = new File("c:/whu/net");
System.out.println(file.mkdir());//true whu目录必须是个空目录才返回true
file = new File("c:/whu/aa.txt");
System.out.println(file.mkdir());//true 创建文件夹"aa.txt" (whu目录下可以有空目录)
}

mkdirs 创建一个多级文件夹、也可以创建单级文件夹(先调用mkdir试试)
只能创建目录,不能创建文件(不管有没有写后缀名)
public static void main(String[] args) throws IOException {
// public boolean mkdirs() 创建一个多级文件夹
//注意:
//1. 可以创建单级文件夹,也可以创建多级文件夹
//2. 不管路径最后有无后缀名,都只能创建文件夹(无法创建文件)
File file = new File("c:/whu/net/software/java");
boolean result = file.mkdirs();
System.out.println(result);//true 多级目录创建成功
System.out.println(new File("c:/whu/net2").mkdirs());//true 单级目录也能创建
System.out.println(new File("c:/whu/bb.txt").mkdirs());//true 只能创建目录bb.txt 无法创建文件
//mkdir了解下,没啥用 mkdirs也是会先去调用mkdir失败再执行新逻辑
}


查看源码:

方法分类
| 方法名 | 说明 |
|---|---|
| public boolean delete() | 删除由此抽象路径名表示的文件或目录 |
示例代码
- 彻底删除,不走回收站
- 删除文件时直接删除单个文件
删除目录时,只能删除空目录- 若想删除非空目录,则只得先删除该目录下的所有内容,再删除剩下的空目录
.
一句话:delete()方法只能删除文件或空目录
public static void main(String[] args) throws IOException {
//注意点:
//1. 彻底删除,不走回收站
//2. 删除文件时直接删除单个文件
// 删除目录时,只能删除空目录
//3. 若想删除非空目录,则只得先删除该目录下的所有内容,再删除剩下的空目录
//一句话:delete()方法只能删除文件或空目录
//a、删除文件
File file = new File("C:/whu/a.txt");//a.txt文件存在
boolean result = file.delete();
System.out.println(result);//true
//b、删除目录
file = new File("C:/whu");//whu目录存在
System.out.println(file.delete());//whu目录非空:false whu目录为空:true
}