zoukankan      html  css  js  c++  java
  • 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


  • 相关阅读:
    Kafka项目实践
    页级别的恢复
    Linux查看网卡流量(转)
    Linux Top 命令解析 比较详细(转)
    《神秘的程序员们》漫画26~28:《万年坑系列》 I、II、III(转)
    Linux概念架构的理解(转)
    Building Redis for use on Cygwin(转)
    2014值得期待的Erlang两本新书
    jps命令使用
    编译原理学习导论
  • 原文地址:https://www.cnblogs.com/progor/p/9352410.html
Copyright © 2011-2022 走看看