File:它是文件和目录路径名的抽象表示
- 文件和目录是可以通过File封装成对象的
- 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已,它是可以存在的也是可以不存在的,将来是要通过具体的操作把这个路径的内容转换为具体存在的
- File属于java.io.包下,使用时需要导包
一、File构建文件的三种方法:
方法 说明 File(String pathname) 用指定的文件路径构造文件 File(String dir ,String subpath) 在指定的目录下创建指定文件名的文件
dir参数:指定目录路径; subpath参数:指定文件名
File(File parent ,String subpath) 根据一个文件对象和一个字文件构造文件对象
parent参数:指定目录文件;subpath参数:指定文件名//File(String pathname),用指定的文件路径构造文件 File f1 = new File("e:/java.txt"); //File(String dir ,String subpath),在指定的目录下创建指定文件名的文件 //dir参数:指定目录路径; subpath参数:指定文件名 File f2 = new File("e:/","java1.txt"); //File(File parent ,String subpath),根据一个文件对象和一个字文件构造文件对象 //parent参数:指定目录文件; subpath参数:指定文件名 File f3 = new File("e:/"); File f4 = new File("f3","java2.txt");
二、File常用方法
方法 说明 exists 判断文件或目录是否存在 getAbsolutePath 返回此对象表示的文件的绝对路径名 getName 返回此对象表示的文件或目录的名称 getParent 返回此File对象的路径名的上一级,如果路径名没有上一级,则返回null delete 删除此对象指定的文件或目录 createNewFile 创建名称的空文件,不创建文件夹 isDirectory 判断是否是目录 mkdir 创建一个目录,它的路径名有当前File对象指定 mkdirs 创建包括父目录的目录(多级目录即使父目录不存在也可以创建) isFile 判断是否为文件 lastModified 获取文件或目录的最后修改时间 length 获取文件或目录的大小,单位为字节(byte) /** * File类的常用方法 * */ //creatNewFile 创建空文件,不创建文件夹 //引入File类(file属于java.io.下需要导包) File f1 = new File("e:/java.txt"); f1.createNewFile(); //mkdir 创建一个目录,它的路径名有当前File对象指定 File f2 = new File("e:/java1.txt"); f2.mkdir(); //mkdirs 创建包括父目录的目录(多级目录,即使父目录不存在也可以创建出来) File f3 = new File("e:/java/java1"); f3.mkdirs(); //getAbsolutePath 返回此对象表示的文件的绝对路径名 System.out.println(f2.getAbsolutePath());//e:\java1.txt //getName 返回此对象表示的文件或目录的名称 System.out.println(f2.getName());//java1.txt //getParent 返回此File对象的路径名的上一级,如果路径名没有上一级,则返回null System.out.println(f2.getParent());// e:\ //delete 删除此对象指定的文件或目录 System.out.println(f2.delete());//true //isDirectory 判断是否是目录 System.out.println(f1.isDirectory());//false System.out.println(f3.isDirectory());//true //lastModified 获取文件或目录的最后修改时间 System.out.println(f1.lastModified());//1668061985940 //length 获取文件或目录的大小,单位为字节(byte) System.out.println(f1.length());//0
Tip :
File类创建对象时会有异常,可以直接抛出异常或者选择 try / catch 环绕解决
delete:如果删除的目录文件下面有内容这不可以删除
lastModified: 返回的值是毫秒值(时间戳)
三、遍历目录(递归方法)
/**
* 遍历目录(递归方法)
* */
//创建一个File对象
File f1= new File("d:/java");
//调用方法
getAllFilePath(f1);
//方法体
//定义一个方法,用于获取给定目录下的所有内容
public static void getAllFilePath(File srcFile){
//获取给定的File目录下的所有文件或者目录的File数组
File[] fileArray = srcFile.listFiles();
//遍历该File数组,得到每一个File对象
if (fileArray!=null){
for (File file : fileArray) {
//判断该File对象是否是目录
if (file.isDirectory()){
//如果是,则递归调用
getAllFilePath(file);
}else {
//如果不是,则获取绝对路径输出在控制台
System.out.println(file.getAbsolutePath());
}
}
}
}