一、File类概述和构造方法
1.File类的概述
File:它是文件和目录路径名的抽象表示
- 文件和目录是可以通过File封装成对象的
- 对File而言,其封装并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来要通过具体操作把这个路径的内容转为具体的存在。
2.构造方法
方法名 | 说明 |
File(String pathname) | 通过将给定的路径名字字符串转换为抽象路径来创建新的File实例 |
File(String parent,String child) | 从父路径名字符串和子路径名字字符串创新的File实例 |
File(File parent,String child) | 从父抽象路径名和子路径名字字符串创建新的File实例 |
二、File类创建功能
方法名 | 说明 |
public boolean createNewFile() | 当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件 |
public boolean mkdir() | 创建由此抽象路径名命名的目录 |
public boolean mkdirs() | 创建由此抽象路径名命名的目录,包括任何必须但不存在的父目录 |
三、File类判断和获取功能
方法名 | 说明 |
public boolean isDirectory() | 测试此抽象路径名表示的File是否为目录 |
public boolean isFile() | 测试此抽象路径名表示的File是否为文件 |
public boolean exists() | 测试此抽象路径名表示的File是否存在 |
public String getAbsolutePath() | 返回此抽象路径名的绝对路径名字符串 |
public String getPath() | 将此抽象路径名转换为路径名字符串 |
public String getName() | 返回由此抽象路径名表示的文件或目录的名称 |
public String[] list() | 返回此抽象路径名表示的目录中的文件和目录的名称字符串数组 |
public File[] listFile() | 返回此抽象路径名表示的目录中的文件和目录的File对象数组 |
四、File类删除功能
方法名 | 说明 |
public boolean delete() | 删除由此抽象路径名表示的文件或目录 |
1.绝对路径和相对路径的区别
- 绝对路径:完整的路径名,不需要任何其他信息就可以定位它所在的文件。例如:E:\\itcast\\java.txt
- 相对路径:必须使用取自其他路径的信息进行解释。例如:muFile\\java.txth
删除目录的注意事项:
- 如果一个目录中有内容(目录文件),不能直接删除。应该先删除目录中的内容,最后才能删除目录。
2.创建文件时路径名D:\\test\\java.txt与java.txt的区别
代码展示
public class Test {public static void main(String[] args) throws IOException {//在指定盘符下创建文件File f1 = new File("D:\\test\\java.txt");f1.createNewFile();}
}
这段代码是在D盘的test文件中新建一个java.txt文件
public static void main(String[] args) throws IOException {
// //在指定盘符下创建文件
// File f1 = new File("D:\\test\\java.txt");
// f1.createNewFile();File f1 = new File("java.txt");System.out.println(f1.createNewFile());}
这段代码生成的文件在工程目录下面
3.删除刚刚创建的文件代码演示
public static void main(String[] args) throws IOException {
// //在指定盘符下创建文件
// File f1 = new File("D:\\test\\java.txt");
// f1.createNewFile();File f1 = new File("java.txt");
// System.out.println(f1.createNewFile());//需求2:删除当前模块目录下的java.txt文件System.out.println(f1.delete());}
}
4.在当前工程下面新建一个包,名叫“itcast”
//需求3:在当前模块目录下创建itcast目录File file = new File("itcast");System.out.println(file.mkdir());
结果展示
5.删除刚刚新建的目录itcast
//需求4:删除当前目录下创建的itcast目录System.out.println(file.delete());
测试结果
注意:如果itcast目录下面有内容,就不能够直接删除,要先把目录下面的文件删除掉才能把目录删掉。
五、递归
1.递归概述:
以编程的角度来看,递归指的是方法定义中调用方法本身的现象
2.递归解决问题的思路:
把复杂的问题层层转化为一个与原问题相似规模较小的问题来求解,递归策略只需要少量的程序就可以描述出解题过程需要多次重复计算
3.递归解决问题要找到两个内容
- 递归出口:否则会出现内存溢出
- 递归规则:与原问题相似的规模较小的问题