java File类小结

File类

构造方法:

public File(String pathname)//将给定路径字符串转换成抽象路径名来创建新的File实例
public File(String parent, String child)//从父路径名字符串和子路径名字符串创建新的File实例
public File(File parent, String child)//从父抽象路径名和子路径字符串创建新的File实例

tips:

  1. 一个File对象代表硬盘中实际存在的一个文件或者目录
  2. 无论该路径下是否存在文件或目录,都不影响File对象的创建

常用方法

获取功能的方法

public String getAbsolutePath()//返回词File的绝对路径名字符串
public String geiPath()//将此File对象转换成路径名字符串
public String getName()//返回由此File表示的文件或目录的名称
public long length()//返回次File表示的文件的长度

注意:

  1. getName的源码就是getPath
  2. 文件夹的大小没有意义

判断功能的方法

public boolean exists()//此File表示的文件或目录是否实际存在
public boolean isDirectory()// 是否为目录
public boolean isFile()//是否为文件

删除功能的方法

public boolean creatNewFile()//当且仅当具有该名称的文件尚不存在时,创建一个新的空文件(默认抛出IoException)
public boolean delete() //删除目录或文件(必须File对象为空)    
public boolean mkdir()//创建一个文件夹
public boolean mkdirs()//创建多级文件夹

目录的遍历

public String[] list()//返回一个字符串数组,表示该file目录中的所有子文件或目录(包含隐藏文件)
public File[] listFiles()//返回一个File数组,表示该file目录中的所有子文件或目录(包含隐藏文件)

注意:

调用listFiles方法的File对象,表示的必须是实际存在的目录,否则返回null,无法进行遍历。

文件过滤器优化

java.io.FileFilter是一个接口,是File的过滤器。 该接口的对象可以传递给File类的listFiles(FileFilter) 作为参数, 接口中只有一个方法。

boolean accept(File pathname) :测试pathname是否应该包含在当前File目录中,符合则返回true。

分析

  1. 接口作为参数,需要传递子类对象,重写其中方法。我们选择匿名内部类方式,比较简单。
  2. accept方法,参数为File,表示当前File下所有的子文件和子目录。保留住则返回true,过滤掉则返回false。
  3. 通过过滤器的作用,listFiles(FileFilter)返回的数组元素中,子文件对象都是符合条件的,可以直接打印。

``public interface FilenameFilter`:实现此接口的类实例可用于过滤器文件名。

boolean accept(File dir, String name)

测试指定文件是否应该包含在某一文件列表中。

  • 参数:

    dir - 被找到的文件所在的目录。

    name - 文件的名称。

  • 返回:

    当且仅当该名称应该包含在文件列表中时返回 true;否则返回 false

posted @ 2020-05-08 23:19  归来也无风雨也无晴  阅读(233)  评论(0编辑  收藏  举报