java.io.File类:
是文件和目录路径名的抽象表示 , 用于对文件和文件夹进行操作.
1.path路径:
- 绝对路径: 从盘符开始(固定位置使用). 例: c:\ b.txt
- 相对路径: 相对于当前项目根目录下的文件. 例: b.txt
2.构造方法:
- public File(String pathname) : 通过将给定的路径名字创建File类.
可以是文件/文件夹结尾 . 绝对/相对路径 , 路径存在/不存在 .- public File(String parent, String child) : 从父路径和子路径创建File类.
- public File(File parent, String child) 从父抽象名和子路径名创建File类
3.常用方法:
获取方法:
getName():获取构造方法中路径的名称(末尾部分).
getAbsolutePath(): 获取File的绝对路径名.
length(): 获取文件的大小, (文件夹没有大小).
getPath(): 传递什么 , 返回什么.
判断方法:
isFile(): 是否为文件 / / 使用前提: 路径必须真实.
isDirectory(): 是否为目录(文件夹)
exists() : 文件或者目录路径是否存在.
创建方法:
createNewFile(): 创建一个空文件
mkdir(): 创建单级文件夹.
mkdirs(): 创建单级文件夹, 也可以创建多级文件夹
删除方法:
delete(): 删除文件 / 文件夹 . - - > 不走回收站, 直接删除 .
若文件夹有东西不会删除,要先删除里面的文件.
4.目录的遍历:
public String[ ] list(): 获取当前目录下的文件以及文件夹的名称.
public File[ ] listFiles() : 获取当前目录下的文件以及文件夹对象.
注: 隐藏的也能遍历出来 , 但不会遍历子文件夹.
5.案例: 文件搜索.
// 对一个文件夹进行遍历输出 , 如果还有子文件夹也对其进行遍历输出.
public class Demo04Recurtion {
public static void main(String[] args) {
//创建File对象 , 参数传递需遍历的路径.
File f = new File("d:\\aaa ");
// 调用方法 .
getAllFile(f);
}
public static void getAllFile(File dir){
// 先对File中的路径 , 进行遍历 .
File[] files = dir.listFiles();
for (File file : files) {
// 判断它是不是文件夹 , 如果是进行递归 . 继续遍历
if(file.isDirectory()){
getAllFile(file); // 使用了递归 , 继续遍历子文件夹.
}else {
// 不是文件夹 , 就打印输出 .
System.out.println(file);
}
}
}
}
扩展知识点:
递归: 方法自己调用自己.
使用前提: 主体不变 , 参数改变 .
内存溢出: 没有结束条件 , 栈内存中方法过多 , 构造方法不能递归 .