file API

* java.io.File
* File可以表示硬盘上的一个文件或目录(本质保存的是一个抽象路径)
* File可以:
* 1:访问其表示的文件或目录的属性
* 2:创建删除文件或空目录
* 3:访问一个目录中的子项
* File不可以:访问文件数据

file方法:
1//是否可写        boolean cw = file.canWrite();
2//是否可读        boolean cr = file.canRead();

3//创建一个file
                //在当前项目目录下新建一个文件:test.txt
                //1创建一个File表示要创建的文件
                File file = new File("./test.txt");
                //2判断该位置下是否已经存在了这个文件或目录
                /*
                    boolean exists()
                    判断当前File表示的文件或目录是否真实存在,存在则返回true
                 */
                if(file.exists()){
                    System.out.println("该文件已存在");
                }else{
                    //3将该文件创建出来
                    /*
                        createNewFile方法的作用是将当前File表示的文件在该位置创建出来
                     */
                    file.createNewFile();//光标在这句代码中按alt+回车
                    System.out.println("文件已创建");
                }
4//删除文件        
                //删除当前目录下的test.txt文件
                //1创建一个File表示要删除的为文件
                //注:在相对路径中,"./"可以忽略不写,默认就是从"./"开始
                File file = new File("test.txt");
                if(file.exists()){
                    /*
                        delete()作用就是将当前File表示的文件删除
                     */
                    file.delete();
                    System.out.println("该文件已删除!");
                }else{
                    System.out.println("该文件不存在!");
                }

5//创建一个目录
                                    //在当前目录下新建一个目录:demo
        //        File dir = new File("./demo");
        //        File dir = new File("demo");

                File dir = new File("./a/b/c/d/e/f");
                if(dir.exists()){
                    System.out.println("该目录已存在!");
                }else{
                    /*
                  mkdir()创建当前File表示的目录,前提是该目录所在的目录必须存在。
                  mkdirs()创建当前File表示的目录,并会将所有不存在父目录一同创建出来。
                        实际开发中推荐使用mkdirs这个方法。
                     */
        //            dir.mkdir();
                    dir.mkdirs();
                    System.out.println("该目录已创建!");
                }
 6//删除目录       
                     //删除当前目录下的demo目录
                    File dir = new File("./demo");
                    File dir = new File("./a");
                    if(dir.exists()){
                        /*
                            delete()方法在删除目录是要求该目录必须是一个空目录
                         */
                        dir.delete();
                        System.out.println("该目录已删除!");
                    }else {
                        System.out.println("该目录不存在!");
                    }
7//获取一个目录中的所有子项
                                                File dir = new File(".");
                    /*
                        boolean isFile()
                        判断当前File对象表示的是否为一个文件

                        boolean isDirectory()
                        判断当前File对象表示的是否为一个目录
                     */
                    if(dir.isDirectory()){//判断当前dir表示的是否为一个目录
                        /*
                            File[] listFiles()
                            将当前File对象表示的目录中所有子项返回
                         */
                        File[] subs = dir.listFiles();
                        System.out.println("当前目录下共:"+subs.length+"个子项");
                        for(int i=0;i<subs.length;i++){
                            File sub = subs[i];
                            System.out.println(sub.getName());
                        }
                    }
8// *  重载的listFiles方法
 *  File[] listFiles(FileFilter filter)
 *  该方法允许我们传入一个文件过滤器,然后将当前File对象表示的目录中所有满足此过滤器要求的
 *  子项返回。
                        /*
                        获取./src/file目录中所有名字中含有“t”的文件
                     */
                    File dir = new File("./src/file");
                    if(dir.isDirectory()){
                        //使用匿名内部类创建一个文件过滤器
                        FileFilter filter = new FileFilter() {
                            /*
                         重写accept方法(accept:接受)
                        此方法的重写原则是定义过滤器过滤File的条件。当参数file符合此过滤器
                         的过滤条件时,方法应当返回为true。表达过滤器接受该file。
                             */
                            public boolean accept(File file) {
                                String name = file.getName();
            //                    return name.indexOf("t")>=0;
                                return name.contains("t");//contains:包含
                            }
                        };
                        File[] subs = dir.listFiles(filter);
                        for(int i=0;i<subs.length;i++){
                            System.out.println(subs[i].getName());
                        }
                    }
9//lambda表达式/**
 * JDK8之后推出的lambda表达式
 * lambda表达式可以"面向函数式编程"
 * lambda表达式给我们的直观感受是可以用更简洁的语法创建匿名内部类
 * 当要实现的接口中【只有一个抽象方法】时,才可以使用lambda表达式去替换原始的匿名内部类形式
 * 创建
 *
 * 基本语法:
 * (参数列表)->{
 *     方法体
 * }
        如下可忽略:    
        //参数类型可以忽略不写
        //如果方法体中只有一句代码时,方法体的”{}“可以忽略不写
        //如果这句代码含有return关键字,那么在忽略"{}"的同时也要一同忽略return
         //如果参数列表中只有一个参数时,"()"可以忽略不写

*
 */        //该过滤器的过滤条件是名字含有"t"的则接受
//        FileFilter filter = new FileFilter() {
//            public boolean accept(File file) {
//                String name = file.getName();//获取要过滤的子项的名字
//                boolean c = name.contains("t");//判断名字是否含有字母t
//                return c;//含有t的则接受(返回true)
//            }
//        };

      /*  FileFilter filter = new FileFilter() {
            public boolean accept(File file) {
                return file.getName().contains("t");
            }
        };

        FileFilter filter1 = (File file) -> {
                return file.getName().contains("t");
        };

        //参数类型可以忽略不写
        FileFilter filter2 = (file) -> {
            return file.getName().contains("t");
        };

        //如果方法体中只有一句代码时,方法体的”{}“可以忽略不写
        //如果这句代码含有return关键字,那么在忽略"{}"的同时也要一同忽略return
        FileFilter filter3 = (file) -> file.getName().contains("t");


        //如果参数列表中只有一个参数时,"()"可以忽略不写
        FileFilter filter4 = f -> f.getName().contains("t");*/

        File dir = new File("./src/file");
       /*
        File[] subs = dir.listFiles(new FileFilter() {
            public boolean accept(File file) {
                return file.getName().contains("t");
            }
        });
        */
        File[] subs = dir.listFiles(f->f.getName().contains("t"));
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值