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());
}
}
}
}