day11——File类(详细)

本文详细介绍了Java中的File类,包括如何通过绝对路径和相对路径创建File对象,以及File类提供的创建、删除文件和文件夹的方法。同时,讨论了路径分隔符、文件属性判断(如是否为文件或文件夹、是否存在)以及获取文件信息(如路径、名称、大小、最后修改时间)的功能。此外,还展示了如何遍历文件夹内容和递归删除文件夹的实现。
摘要由CSDN通过智能技术生成

File类

File类表示文件或者文件夹,File类提供了一些方法可以对文件或者文件夹进行操作。

文件路径问题

绝对路径:从盘符开始的路径
  		举例:"C:\\itheima\\a.txt"
  
相对路径:从项目的根目录开始的路径
  		举例:比如项目的根目录 "C:\\IdeaProject\\javase"
  			   需要表示"C:\\IdeaProject\\javase\\day10\\a.txt"这个路径的相对路径
  				 File f=new File("day10\\a.txt");

			注意:只有在项目路下的文件或者文件夹,才能写相对路径;否则不能相对路径。
        
路径名称分隔符:根据操作系统的不同,路径名称的分隔符也是不同的。
     Windows系统:"\", Java语言中”\“表示转义字符,必须写两个"\\"
     Mac和Linux: "/"

File类的构造方法

public File(String path)
  根据文件路径创建File对象
public File(String parent,String child)
  根据父路径和子路径创建File对象
public File(File parent,String child)
  根据父路径和子路径创建File对象

根据构造方法创建对象

//创建一个File对象,指定文件路径
File f1=new File("C:/itheima/a.txt");
System.out.println(f1);

//创建一个File对象,指定父路径和子路径
File f2=new File("C:/itheima","a.txt");
System.out.println(f2);

File dir=new File("C:/itheima");
//创建一个File对象,指定父路径和子路径
File f3=new File(dir,"a.txt");
System.out.println(f3); 

创建文件或文件夹

public boolean createNewFile()
  	创建文件,如果文件不存在可以创建成功;否则就创建失败。
  	注意:文件所在的父路径必须存在。
public boolean mkdir()
  	创建单级文件夹
public boolean mkdirs()
  	创建多级文件夹(推荐)

判断和获取的功能

public boolean	isDirectory()
  判断File对象的路径是否为文件夹的路径
public boolean isFile()
  判断File对象的路径是否为文件的路径
public boolean	exists() 
  判断文件或者文件夹是否存在

public String	getAbsolutePath() 
  获取绝对路径
public File	getAbsoluteFile() 
  获取绝对路径
  
public String	getParent() 
  获取父路径
public File	getParentFile() 
  获取父路径
  
public String getPath()
  获取File对象封装的路径
public String	getName() 
  获取文件或者文件的名称

public long	lastModified()
  获取文件最后一次修改的时间的毫秒值

public long	length() 
  获取文件的大小(单位:字节),不能获取文件夹的大小。
    1T=1024GB
    1GB=1024MB
    1MB=1024KB
    1KB=1024字节
  	1byte=8

删除文件或文件夹

public  boolean delete()
  	删除文件或者空的文件夹

文件夹遍历

public File[] listFiles()
  获取文件中的子文件和子目录(不包括子目录中的内容)
  注意:如果调用者是一个文件,或者是文件夹没有权限访问,返回值是null
  	   如果调用着是一个空文件夹,返回值是一个长度为0的数组
  • 删除文件夹
public static void deleteDirectory(File dir){
  //获取文件夹中的内容
  File[] files=dir.listFiles();
  //遍历数组
  for(File file:files){
    //file是文件,删除文件
    if(file.isFile()){
      file.delete();
    }else{
      //file是文件夹,递归调研
      deleteDirectory(file);
    }
  }
  //上面的for循环结束之后,表示文件夹中的内容已经删干净了。接着需要删除空的文件夹
  dir.delete();
}
  • 统计一个文件中每一类文件出现的次数
//键:文件的扩展名
//值:文件出现的次数
public static void getCount(File dir,HashMap<String,Integer> map){
  //获取文件夹中的内容
  File[] files=dir.listFiles();
  //遍历文件夹
  for(File file:files){
    if(file.isFile()){
      //获取文件的名称  //hello.txt
      String name=file.getName().spilt("\\.")[1];
      if(map.containsKey(name)){
        //获取原来的值
        int value=map.get(name);
        //+1之后,再存回去
        map.put(name,value+1);
      }else{
        //如果是第一次添加,值就是1
        map.put(name,1);
      }
    }else{
      getCount(file,map);
    }
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值