File类
java.io.File
类
文件和目录路径名的抽象类
File类的方法:
- 创建一个文件/文件夹
- 删除文件/文件夹
- 获取文件/文件夹
- 判断文件/文件夹是否存在
- 对文件进行遍历
- 获取文件的大小
关键词:file 、 directory、path
路径:
- 绝对路径:是一个完整的路径
- 相对路径:是一个简化的路径
File的构造方法
File(String pathname): 通过给定的路径字符串转为抽象路径创建一个File实例
常用方法
获取功能方法:
-
public String getAbsolutePath()
:返回此File的绝对路径名字符串。 -
public String getPath()
:将此File转换为路径名字符串。 -
public String getName()
:返回由此File表示的文件或目录的名称。 -
public long length()
:返回由此File表示的文件的长度。
public static void main(String[] args) {
File f = new File("d:/a/b.java");
System.out.println("文件绝对路径:"+f.getAbsolutePath());
System.out.println("文件构造路径:"+f.getPath());
System.out.println("文件名称:"+f.getName());
System.out.println("文件长度:"+f.length()+"字节");
File f2 = new File("d:/aaa");
System.out.println("目录绝对路径:"+f2.getAbsolutePath());
System.out.println("目录构造路径:"+f2.getPath());
System.out.println("目录名称:"+f2.getName());
System.out.println("目录长度:"+f2.length());
}
判断功能方法:
public boolean exists()
:此File表示的文件或目录是否实际存在。public boolean isDirectory()
:此File表示的是否为目录。public boolean isFile()
:此File表示的是否为文件。
创建删除功能方法:
public boolean createNewFile()
:当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。public boolean delete()
:删除由此File表示的文件或目录。public boolean mkdir()
:创建由此File表示的目录。public boolean mkdirs()
:创建由此File表示的目录,包括任何必需但不存在的父目录。
遍历功能方法:
-
public String[] list()
:返回一个String数组,表示该File目录中的所有子文件或目录。 -
public File[] listFiles()
:返回一个File数组,表示该File目录中的所有的子文件或目录。
递归
概念
递归:指当前方法自己调用自己
递归分为两种:
- 直接递归:方法直接调用自己
- 间接递归:A方法调用B方法,B方法调用C方法,C方法调用A方法
注意:
- 递归一定要有条件限制,保证递归能够停下来,否则栈内存溢出
- 递归次数也不能太多,否则栈内存溢出
- 构造方法,不能递归
递归打印多级目录
public static void getAllFile(File dir){
File[] files = dir.listFiles();
for (File f : files) {
if(f.isDirectory()){
getAllFile(f);
}else {
System.out.println(f);
}
}
}