java - io - File类

本文深入讲解Java中的File类,涵盖路径概念、构造方法、常用API如getName(), getAbsolutePath(), mkdir()等,以及如何通过递归遍历目录和文件。适合初学者及需要复习的开发者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

扩展知识点:

递归: 方法自己调用自己.
使用前提: 主体不变 , 参数改变 .
内存溢出: 没有结束条件 , 栈内存中方法过多 , 构造方法不能递归 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值