File类:
概述:java.io.File类是文件和目录路径名的抽象表示,用于文件和目录的创建、查找、删除等操作
构造方法:
public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。
public File(File parent, String child) :从父抽象路径名和子路径名字符串创建新的 File实例
注意事项:
1.一个File对象代表硬盘中实际存在的一个文件或者目录
2.无论路径的文件或者目录是否存在,都不影响File对象的创建
常用方法:
public String getAbsolutePath() :返回此File的绝对路径名字符串。
public File getAbsoluteFile(): 返回此File的绝对路径名Flie对象
public String getPath() :将此File转换为路径名字符串。File对象是以什么路径创建的就获取什么路径 如果File对象是绝对路径,就获得绝对路径,如果是相对路径就获得相对路径
public String getName() :返回由此File表示的文件或目录的名称。
public long length() :返回由此File表示的文件的长度。
绝对路径:从盘符开始的路径,这是一个完整的路径
相对路径:相对于项目目录的路径,这是一个便捷的路径,开发中常用
判断功能的方法
public boolean exists() :此File表示的文件或目录是否实际存在。
public boolean isDirectory() :此File表示的是否为目录。(判断是不是文件夹或者存不存在)
public boolean isFile() :此File表示的是否为文件。 (判断是不是文件或者存不存在)
endsWith(string str): 判断此文件是否跟括号内的文件名后缀一样
创建删除功能的方法
public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
public boolean delete() :删除由此File表示的文件或目录。1.删除的文件或文件夹不走回收站,2.只能删除空文件夹,3.删除的文件要存在
public boolean mkdir() :创建由此File表示的目录。(创建单个文件夹)
public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录。 (创建多级文件夹)
文件夹遍历
public String[] list() :返回一个String数组,获取File文件夹中的所有文件名和文件夹名的字符串形式
public File[] listFiles() :返回一个File数组,获取File文件夹中的所有文件名的绝对路径和文件夹名的绝对路径的File对象形式
public File[] listFiles(FileFilter fileFilter): 遍历文件过滤器优化
递归:
概述: 方法自己调用自己
使用递归:找规律,找出口
递归的注意事项:
1.递归次数太多,会出现溢出异常。
2.递归一定要有出口,出口不能太晚,太晚也会出现异常
递归打印多级文件夹
public class DiGuiDemo2 {
public static void main(String[] args) {
// 创建File对象
File dir = new File("D:\\aaa");
// 调用打印目录方法
printDir(dir);
}
public static void printDir(File dir) {
// 获取子文件和目录
File[] files = dir.listFiles();
// 循环打印
/*
判断:
当是文件时,打印绝对路径.
当是目录时,继续调用打印目录的方法,形成递归调用.
*/
for (File file : files) {
// 判断
if (file.isFile()) {
// 是文件,输出文件绝对路径
System.out.println("文件名:"+ file.getAbsolutePath());
} else {
// 是目录,输出目录绝对路径
System.out.println("目录:"+file.getAbsolutePath());
// 继续遍历,调用printDir,形成递归
printDir(file);
}
}
}
}