File类-初学者笔记

                       File类

  java中File类(java.io.File)表示操作系统中的文件或者目录,也就是
我们可以使用File操作硬盘上的文件或者目录进行创建或者删除。
   File可以描述文件或目录的名字,大小等信息,但不能对文件的内容进行操作!
 其构造器是有参的。
     1)关于路径:不同操作系统差异很大,Linux和Windows就不同!建议使用相对路径
     不建议用绝对路径。
     2)“.”代表的路径:当前目录(项目所处的目录).
     File.separator:常量,目录分隔符  根据系统自动时别哪种分隔符。
     3)创建对象并不意味着硬盘对应路径就有该文件,值是在内存中创建了该对象
     取代表路径指定的文件。这个路径可能也不存在。
     File file=new File("."+File.separator+"data.dat");//  效果为./data.dat
     4)createNewFile()中有throws声明,要求强制捕获异常!
5)新建文件或目录:
①boolean mkdir():只能在已有的目录基础上创建目录。
②boolean mkdirs():会创建所有必要的父目录(不存在的自动创建)并创建该目录。
③boolean createNewFile():创建一个空的新文件。
6)创建目录中文件的两种方式:
①直接指定data.dat需要创建的位置,并调用createNewFile(),前提是目录都要存在!
   ②先创建一个File实例指定data.dat即将存放的目录,若该目录不存在,则创建所有不存在的目录,
   再创建一个File实例,代表data.dat文件,创建是基于上一个代表目录的File实例的。
   使用File(File dir,String fileName)构造方法创建File实例,然后再调用createNewFile():
   在dir所代表的目录中表示fileName指定的文件。
   7)查看文件或目录属性常用方法
①long length():返回文件的长度。
②long lastModified():返回文件最后一次被修改的时间。
③String getName():返回文件或目录名。
④boolean exists():是否存在。        
⑤boolean isDirectory():是否是目录。
⑥boolean canWrite():是否可以写入、修改。 
                ⑦File[] listFiles():获取当亲目录的子项(文件或目录)
                ⑧String getPath():返回路径字符串。
                ⑨boolean isFile():是否是标准文件。
                ⑩boolean canRead():是否可以读取。
     eg.1
     递归法:
     1)遍历当前目录上所以文件
     public static void listDirectory(File dir) {
 File[] files=dir.listFiles();                             
 if(files!=null&&files.length>0){//判断子项数组有项
for(File file:files){//遍历该目录下的所有子项
if(file.isDirectory()){//若子项是目录
listDirectory(file);//不到万不得已,不要使用递归,非常消耗资源
}else{
 System.out.println("文件:"+file);//有路径显示,输出File的toString()
file.getName();//不显示路径
}
}
 }
}
2)遍历删除当前文件下的所有文件夹文件
public static void delete(File dir) {
File[] files = dir.listFiles();
if(files!=null) {
for(File file:files) {
if(file.isFile()) {
file.delete();
}else {
delete(file);
}
}
}
dir.delete();
}
8)删除一个文件:boolean delete():
①直接写文件名作为路径和"./data.dat"代表相同文件,也可直接写目录名,但要注意第2条。
②删除目录时:要确保该目录下没有任何子项后才可以将该目录删除,否则删除失败!
9)FileFilter:文件过滤器
  是一个接口,不能被实例化,可以规定过滤条件,重写accept()方法
  FileFilter filter = new FileFileter(){
         public boolean accept(File file){
            return file.getName().endsWith(".txt")//按照文件后缀过滤
         }
  
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值