Java:文件操作


本文内容:

  • 文件操作
  • 文件过滤器

首发日期:2018-07-23


文件操作:

Java中对文件和目录的操作,通常通过File类来操作。

File类有几个构造函数,常用的是下面三个:

File(String pathname):根据路径名创建一个对象

File(String parent, String child):根据路径名跟子路径名创建一个对象(就是第一个的拆分版本)

File(File parent, String child):跟第二个相同功能,不过这里第一个可以给一个File对象。

当有了一个File对象之后,就可以使用下面的操作了。

 

创建文件或文件夹:

创建文件:file.createNewFile()

创建文件夹:file.mkdir()

逐层创建目录:file.mkdirs()

image

获取文件信息:

获取文件名:file.getName()

获取文件大小:file.length()

获取File对象所对应的路径(所以这里File里面怎么封装就怎么显示):file.getPath()

获取文件的绝对路径:file.getAbsolutePath()

获取文件最后修改时间(毫秒数):file.lastModified()

获取父目录路径(获取的也是file对象中封装的,如果初始化时没给目录,将返回null):file.getParent()

文件检测:

文件或目录是否存在:file.exists()

是否是目录:file.isFile()

是否是文件:file.isDirectory()

是否可读:file.canRead()

是否可写:file.canWrite()

删除文件或目录:

删除文件或目录(这个不能做到递归删除,所以如果文件夹里面有文件将不能删除):file.delete()

目录列举:

当File对象封装的是一个目录时,列出File对象的所有直接子文件目录名,返回一个String数组:dir.list()

当File对象封装的是一个目录时,列出File对象的所有直接子文件目录名,返回一个File数组:dir.listFiles()

补充:

  • 文件的读写操作,是输入流和输出流的内容。

文件过滤器:

  • File的list函数和listFiles函数可以列出目录的子文件,当需要列举时,就不得不考虑过滤
  • 使用list函数时,可以传入一个FilenameFilter的实现类,它可以根据文件名过滤文件。
  • 使用listFiles函数时,可以传入一个FileFiter的实现类,它可以根据文件的本有信息过滤(参数是一个对象,你可以自定义使用什么信息来过滤)
  • FilenameFilter是一个接口,实现它的类可以根据文件名进行过滤,它里面需要实现一个函数--accept(File dir, String name)函数,第一个参数是过滤的File对象的父目录,第二个参数是文件名或文件夹名。因为传入了文件名或文件夹名参数,所以我们才可以去进行文件名过滤。当返回true时,不会被过滤。
  • FileFiter是一个接口,实现它的类可以根据文件的类型过滤。它里面需要实现一个函数--accept(File pathname)函数,参数pathname是完整的文件路径。当返回true时,不会被过滤。

文件名过滤器:

image

调用过滤器:image

文件过滤器:

image

调用过滤器:image


原文地址:https://www.cnblogs.com/progor/p/9352410.html