【File类、递归】

File类:表示一个文件或者文件夹(目录)的路径
    路径分为相对路径和绝对路径
    绝对路径:从盘符开始的路径
        举例:"C:\\IdeaProjects\\javajob\\day08-code\\a.bmp"
    相对路径:相对于项目的根目录(省略了项目的根目录)
        //假设项目的根目录为:"C:\\IdeaProjects\\javajob"
        举例:"day08-code\\a.bmp"
    
    构造方法
        public File(String filename)
            通过文件或者文件夹的路径,创建File对象。(ps:既可以是相对路径也可以是绝对路径)
        public File(String parent,String child)
            通过父路径和子路径创建File对象。
        public File(File parent,String child)
            通过父路径和子路径创建File对象。
    
File类的常用方法
    获取功能
        String getAbsolutePath()
            获取文件/文件夹的绝对路径
        String getPath()
            获取File对象封装路径
        String toString()
            获取File对象封装路径
        String getName()
            获取文件/文件夹的名称
        String getParent()
            获取文件/文件夹的父目录
        
        long length()
            只能获取文件的大小,不能获取文件夹的大小
    
    判断功能
        1. File对象封装的路径有可能是【文件的路径】也有可能是【文件夹的路径】
        2. File对象封装的路径有【可能存在】也有【可能不存在】
        注意:路径存在与否、文件夹还是文件用眼睛看不出来。可以用下面的方法来判断
        
        boolean exists()
            判断文件、文件夹是否存在
        boolean isFile()
            判断是否为文件的路径
        boolean isDirectory()
            判断是否为文件夹的路径
        
    创建删除
        boolean createNewFile()
            创建File对象指定路径的文件
        boolean mkdir()
            创建File对象指定路径的文件夹(单级单级文件)
        boolean mkdirs()
            创建File对象指定路径的文件夹(单级多级文件)
        
        boolean delete()
            删除文件获取文件夹
            注意:只能删除空文件夹
    
    目录遍历的方法
        String[] list()
            获取File对象指向目录下面的子文件和子目录,返回值为String[]
        File[] listFiles()
            获取File对象指向目录下面的子文件和子目录,返回值为File[]
    
    

 

 

File类:表示一个文件或者文件夹(目录)的路径
    路径分为相对路径和绝对路径
    绝对路径:从盘符开始的路径
        举例:"C:\\IdeaProjects\\javajob\\day08-code\\a.bmp"
    相对路径:相对于项目的根目录(省略了项目的根目录)
        //假设项目的根目录为:"C:\\IdeaProjects\\javajob"
        举例:"day08-code\\a.bmp"
    
    构造方法
        public File(String filename)
            通过文件或者文件夹的路径,创建File对象。(ps:既可以是相对路径也可以是绝对路径)
        public File(String parent,String child)
            通过父路径和子路径创建File对象。
        public File(File parent,String child)
            通过父路径和子路径创建File对象。
    
File类的常用方法
    获取功能
        String getAbsolutePath()
            获取文件/文件夹的绝对路径
        String getPath()
            获取File对象封装路径
        String toString()
            获取File对象封装路径
        String getName()
            获取文件/文件夹的名称
        String getParent()
            获取文件/文件夹的父目录
        
        long length()
            只能获取文件的大小,不能获取文件夹的大小
    
    判断功能
        1. File对象封装的路径有可能是【文件的路径】也有可能是【文件夹的路径】
        2. File对象封装的路径有【可能存在】也有【可能不存在】
        注意:路径存在与否、文件夹还是文件用眼睛看不出来。可以用下面的方法来判断
        
        boolean exists()
            判断文件、文件夹是否存在
        boolean isFile()
            判断是否为文件的路径
        boolean isDirectory()
            判断是否为文件夹的路径
        
    创建删除
        boolean createNewFile()
            创建File对象指定路径的文件
        boolean mkdir()
            创建File对象指定路径的文件夹(单级单级文件)
        boolean mkdirs()
            创建File对象指定路径的文件夹(单级多级文件)
        
        boolean delete()
            删除文件获取文件夹
            注意:只能删除空文件夹
    
    目录遍历的方法
        String[] list()
            获取File对象指向目录下面的子文件和子目录,返回值为String[]
        File[] listFiles()
            获取File对象指向目录下面的子文件和子目录,返回值为File[]
    
    
    
    

 

总结

一、File类【重点】
    用来表示文件或者文件夹的路径
    路径分为两种
        绝对路径:从盘符开始的路径
        相对路径:相对项目的根目录(根目录可以省略,直接写根目录之后的路径)

    常用方法
        1. 获取方法
            String getAbsolutePath()    获取文件/文件夹的绝对路径
            String getPath()    获取File对象封装的路径
            String getParent()    获取文件/文件夹的父路径
            long length()    获取文件的大小(字节数),不能获取文件夹的大小
            String getName()    获取文件/文件夹的名称
            
        2. 判断方法
            boolean exists()    判断文件/文件夹是否存在
            boolean isFile()    判断是否为文件
            boolean isDirectory()    判断是否为文件夹
        
        3. 创建和删除
            boolean createNewFile()    创建文件
            boolean mkdir()    创建单级文件夹
            boolean mkdirs()创建多级文件夹
    
二、递归调用【重点】
    递归:就是方法自己调用自己
        注意事项:
        1.递归一定要有出口(结束条件)
            StackOverflowError
        2.递归的次数过多也不可以    
            StackOverflowError
    
    文件夹的遍历
    
三、过滤器【了解】
    在调用listFiels(FileFilter filter)时,传递一个FileFilter(过滤器)的实现类对象,由accept(File pathname)提供过滤的规则
    //使用匿名内部类实现FileFilter的accept方法,提供过滤的规则
    File[] files = dir.listFiles(new FileFilter(){
            public void accept(File pathname){
                if (pathname.isFile()) {
                    if (pathname.getName().endsWith(".java")) {
                        return true;
                    }
                } 
                return false;
            }
    });
    //使用Lambda表示FileFilter的实例实现
    File[] files = dir.listFiles((File pathname)->{
                if (pathname.isFile()) {
                    if (pathname.getName().endsWith(".java")) {
                        return true;
                    }
                } 
                return false;
            }
    );
    
    
    
    
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

木子丶Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值