File知识点总结

File概述

为什么学习File类

因为在操作系统中,(内存,RAM , SRAM DRAM) 需要永久保存的数据,都是以文件的形式存在,所以要想操作这些被永久保存的数据,就要用到File类

相对路径与绝对路径

绝对路径:

  • 绝对路径名是 完整的路径名,不需要任何其他信息就可以定位它所表示的文件
  • windows:E:\demo\first\a.txt

相对路径

  • 相反,相对路径名必须使用取自其他路径名的信息进行解释(不完整的路径名)
  • windows: (e:\demo)second\a.txt

java语言中,相对路径默认相对于谁?

  • 默认情况下,java.io包中的类总是根据当前用户目录来解析相对路径名。此目录由系统属性 user.dir 指定,通常是 Java 虚拟机的调用目录。
System.out.println(System.getProperty("user.dir"));  // 获取当前用户目录

不同系统的路径表示

对于类 UNIX 平台,绝对路径名的前缀始终是 “/”。相对路径名没有前缀。表示根目录的绝对路径名的前缀为 “/” 且名称序列为空。

  • 绝对路径: /home/st/6379.conf
  • 相对路径: st/a.txt
  • 根目录: /

对于 Microsoft Windows 平台,包含盘符的路径名前缀由驱动器号和一个 “:” 组成。如果路径名是绝对路径名,还可能后跟 "\“

  • 绝对路径: e:\st\a.txt
  • 相对路径:没有盘符前缀 st\a.txt

File类

文件和目录路径名的抽象表示形式

构造器

File (String pathname)
File (String parent, String child)
File (File parent, String child)

成员方法

创建功能

//只负责创建文件,目录路径如果不存在,会报错而不是帮你创建
public boolean createNewFile() 

//只负责创建目录,且仅能在已经存在的目录下,创建新的目录
public boolean mkdir()
    
//只负责创建目录,但可以创建多级目录,如果多级目录不存在,则帮你全部创建
public boolean mkdirs()

重命名功能

// 重新命名此抽象路径名表示的文件
public boolean renameTo(File dest)
  • 当源文件和修改之后的目标文件在同一目录的时候:效果只是重命名

  • 当源文件和修改之后的目标文件当不在同一目录的时候:移动文件并重命名

删除功能

// 删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则该目录必须为空才能删除
// delete不会因为文件不存在,路径名不正确而抛出异常,只会返回false, 并且不会进入回收站
public boolean delete()

判断功能

// 判断File对象是否表示的是一个文件
public boolean isFile()

//判断File对象是否表示的是一个目录
 public boolean isDirectory() 

//判断File对象表示的文件,是否物理存在
public boolean exists() 

基本获取功能

//获取绝对路径
public String getAbsolutePath()

//获取路径名字符串
 public String getPath()

//获取文件或者目录的名字
 public String getName()

//返回文件的长度,以字节为单位;如果文件不存在,则返回 0L。不能返回文件夹的长度。
 public long length()

//返回此抽象路径名表示的文件最后一次被修改的时间的long值,用与时间点(1970 年1月1日,00:00:00 GMT)之间的毫秒数表示
public long lastModified()

高级获取功能

// 如果File对象表示非空目录,返回一个字符串数组,这些字符串是此目录下的所有文件和文件夹的名字
public String[] list()

// 如果File对象表示非空目录,返回File对象数组,这个对象数组中是此目录下的文件和文件夹的绝对路径
public File[] listFiles()

如果File对象表示文件,则返回null,只能获取当前目录的下一层,并不是获取所有层级
如果是一个空目录,返回一个长度为0的数组,而不是null

文件过滤器FileFilter

  • 自定义获取功能是在高级获取功能的基础上,加了一个过滤器,所以高级功能的特点它都有

  • FileFilter是一个接口,它只有下面一个方法,这个方法相当于把高级功能中listFiles()获取的File数组中File对象遍历一遍,然后逐个判断,符合条件的留下,不符合条件的丢弃

    // 测试指定抽象路径名是否应该包含在某个路径名列表中
    boolean accept(File pathname)
    
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值