File类

1.File类:
        File类的每一个实例可以表示硬盘(文件系统中)的一个文件或目录,实际上表示的是一个抽象路径。 

使用File创建一个文件:
File file = new File("./test.txt");//这里传递的是文件路径  ./是指当前目录
file.createNewFile();//将File文件创建出来
file.exists();//判断file是否存在

1.1File的作用: 
       
<1.访问其表示的文件或目录的属性信息(名字,大小,时间等)。
        <2.操作文件或目录
        <3.访问一个目录中的所有子项
        ##File不能访问文件数据!
1.2File提供的常用方法: 

  • String getName()返回当前文件或目录的名字
  • long length()返回当前文件的大小,单位是字节
  • boolean canRead()返回一个boolean值表示文件是否可读
  • boolean canWrite()返回一个boolean值表示文件是否可写
  • boolean isHidden()返回一个boolean值表示文件是否隐藏
  • boolean exists()判断目录是否存在
  • boolean delete()删除一个文件/目录
  • boolean createNewFile()创建一个File文件
  • boolean mkDir()创建当前File表示的目录;
  • boolean mkDirs()创建当前File表示的目录,同时将所有不存在的父目录一同创建
  • boolean isFile()判断当前File对象表示的是否为一个文件
  • boolean isDirectory()判断当前File对象表示的是否为一个目录
  • File[ ] listFiles()获取当前File对象表示的目录中的所有子项,返回数组中每一个元素(File对象)
File file = new File("./demo.txt");
System.out.println("名字:"+file.getName());
System.out.println("字节:"+file.length());
System.out.println("是否可读"+file.canRead());
System.out.println("是否可写"+file.canWrite());
System.out.println("是否隐藏"+file.isHidden());

1.3文件过滤器
       
 File重写的:File[] listFiles(FileFilter filter) 该方法会返回当前File对象表示的目录中所有满足给定的过滤器要求的子项。 listFiles方法内部会将这个目录中每一个子项所对应的File对象逐一传给过滤器filter的 accept方法,并最终将accept方法返回为true的所有子项返回

File dir = new File(".");
   if(dir.isDirectory()){
       FileFilter filter = new FileFilter(){//匿名内部类创建过滤器
          public boolean accept(File file) {
          String name = file.getName();
          boolean starts = name.startsWith(".");//名字是否以"."开始
          System.out.println("过滤器过滤:"+name+",是否符合要求:"+starts);
          return starts;
      }
  };
File[] subs = dir.listFiles(filter);//使用过滤器

1.3.1可以使用Lambda表达式用更精简的语法创建匿名内部类
        语法:
        (参数列表)->{ 方法体 }
应用:当我们使用匿名内部类创建一个对象时,如果实现的接口中抽象方法时,该操作就可以使用lambda表达式做替换,使代码更简洁。

//匿名内部类写法创建一个文件过滤器
FileFilter filter1 = new FileFileter(){
    public boolean accept(File f){
    return f.length()>500;
    }
};

//lambda表达式写法:去掉接口和方法名部分,在参数列表和方法体大括号之间加上"->"就是lambda
FileFilter filter2 = (File f)->{
    return f.length()>500;
};

//忽略方法参数类型
FileFilter filter3 = (f)->{
    return f.length()>500;
};

//如果方法的参数只有一个,参数列表的()可以忽略不写
FileFilter filter4 = f->{
    return f.length()>500;
};

//如果方法体中只有一句代码,那么方法体的{}可以忽略不写
//如果有return关键字,那么在忽略{}的同时return关键字也必须一同忽略
FileFilter filter5 = f->f.length()>500;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值