一、File
1.1 简介
1.文件和目录路径名的抽象表示形式 File表示就是文件对象
2.路径:绝对路径与相对路径
3.绝对路径:从根盘符开始的路径就是绝对路径 例子: D:\day18\src\com\qf\test01\Text.class
4.相对路径:相对于某一个参照物的路径 idea 中使用的就是相对路径
1.2 常用的构造方法
方法名称 |
方法描述 |
public File(File parent, String child) |
根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例 |
public File(String pathname) |
通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例 |
public File(String parent, String child) |
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例 |
1.3 创建文件以及文件夹
方法名称 |
方法描述 |
public boolean mkdir() |
创建文件夹(一级目录) |
public boolean mkdirs() |
创建文件夹(多级目录) |
public boolean createNewFile() |
创建空的文件 |
1.4 删除文件以及文件夹
方法名称 |
方法描述 |
public boolean delete() |
删除此抽象路径名表示的文件或目录(删除文件以及空的文件夹) |
1.5 重命名与剪切
方法名称 |
方法描述 |
public boolean renameTo(File dest) |
重命名(在同一个目录下是重命名)与剪切 |
1.6 判断性方法
方法名称 |
方法描述 |
public boolean exists() |
测试此抽象路径名表示的文件或目录是否存在 |
public boolean isDirectory() |
测试此抽象路径名表示的文件是否是一个目录 |
public boolean isFile() |
测试此抽象路径名表示的文件是否是一个标准文件 |
1.7 得到性
方法名称 |
方法描述 |
public String getAbsolutePath() |
返回此抽象路径名的绝对路径名字符串 |
public String getPath() |
获取构造方法路劲 |
public String getParent() |
回此抽象路径名父目录的路径名字符串 |
public String getName() |
返回由此抽象路径名表示的文件或目录的名称 |
public long length() |
返回由此抽象路径名表示的文件的长度 |
1.8 过滤性
方法名称 |
方法描述 |
public String[] list() |
回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录(返回的是一级目录下所有的文件包括文件夹) |
public String[] list(FilenameFilter filter) |
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录 |
public File[] listFiles() |
返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件 |
public File[] listFiles(FilenameFilter filter) |
返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录 |
class Test {
public static void main(String[] args) {
File file = new File("d:\\a");
file.listFiles(new FilenameFilter() {
//accept测试指定文件是否应该包含在某一文件列表中。
@Override
public boolean accept(File dir, String name) {//dir - 被找到的文件所在的目录。name - 文件的名称。
return false;
}
});
}
}
二 递归
2.1 简介
1.程序调用自身的编程技巧称为递归。递归是允许方法调用自身调用的属性。调用自身的方法称为是递归的。
2.特点:方法自己反复调用自己
3.注意点:
A.递归中避免栈内存溢出
B.方法中参数会逐渐变小
2.2 案例
需求 删除文件夹下所有的文件包括自身
package com.xxx;
public class Exe {
public static void main(String[] args) {
System.out.println(showInfo(7));
}
public static int showInfo(int num) {
//5
//第一次 showInfo(4)+showInfo(3)
//第二次 showInfo(3)+ showInfo(2) +showInfo(2)+showInfo(1)
//第三次: showInfo(2)+showInfo(1)+showInfo(2) +showInfo(2)+showInfo(1) 5
if (num ==1) {
return 1;
}else if (num==2) {
return 1;
}else {
return showInfo(num-1)+showInfo(num-2);
}
}
}