博客
关于我
java.io.File 类的相关方法详细说明和部分测试代码
阅读量:725 次
发布时间:2019-03-21

本文共 3430 字,大约阅读时间需要 11 分钟。

Java.io.File 类 - 完全指南

File 类是Java中用于处理文件和目录的高级方法,适用于任何操作系统。这一类将文件和目录的路径名抽象化,使其可以在不同系统中无缝运行。

一、静态修饰符

File 类提供了一些与操作系统相关的静态成员变量,方便开发人员处理路径。

  • public static final String pathSeparator:路径分隔符,可根据系统不同切换。例如:c:\text 会被自动转换为适用于不同系统的路径格式。

  • public static final char pathSeparatorChar;:同上,但适用于单个字符处理。

  • public static final String separator;:默认文件名分隔符,例如:/text。

  • public static final char separatorChar;:默认文件名分隔符对应的字符。

通过使用这些常量,可以在项目中统一处理不同操作系统的路径,灵活性极高。

二、构造方法

File 类提供多种构造方式来创建新的File实例:

  • File(String pathname)

    接受一个路径字符串,路径可以是相对或绝对,也可以是存在或不存在的文件。

    示例:

    File file = new File("F:/project/datastructuresandalgorithms/IODemo/a.txt");File file2 = new File("a.txt");
  • File(String parent, String child)

    通过父路径和子路径创建新的File对象。适合灵活操作文件树的路径。

  • File(File parent, String child)

    通过父File和子路径创建新实例,更适合对已有路径进行操作。

  • File(String parent, String child)

    创建一个Hierarchical File对象,通常用于复杂路径。

  • 三、获取方法

    File 类提供四种主要的获取方法:

    • public String getAbsolutePath()

      返回该File对象的绝对路径,无论原始路径是相对还是绝对。

    • public String getPath()

      返回原始提供的路径字符串,保留相对或绝对属性。

    • public String getName()

      返回该File对象表示的文件或目录名称。

    • public int length()

      返回文件大小(以字节为单位),文件夹返回0。

    示例:

    File file = new File("F:/project/datastructuresandalgorithms/IODemo/a.txt");System.out.println(file.getAbsolutePath());  // 输出完整绝对路径System.out.println(file.getPath());      // 输出原始路径字符串System.out.println(file.getName());      // 输出文件名或目录名System.out.println(file.length());       // 文件尺寸以字节计数

    四、判断功能的方法

    File 类还提供了一系列判断方法:

    • public boolean exists()

      检验路径所指的文件或目录是否存在。

    • public boolean isDirectory()

      检验该File对象是否为目录。

    • public boolean isFile()

      检验该File对象是否为普通文件。

    • public boolean isHidden()

      检验该文件是否为隐藏文件/目录。

    示例:

    File file = new File("F:/project/datastructuresandalgorithms/IODemo/a.txt");System.out.println(file.exists());           // 是否存在?System.out.println(file.isDirectory());      // 是否为目录?System.out.println(file.isFile());           // 是否为文件?System.out.println(file2.isDirectory());      // 判断另一个是否为目录System.out.println(file2.isFile());           // 检查是否普通文件

    五、创建和删除功能的方法

    File 类支持文件和目录的操作:

    • public boolean createNewFile()

      创建一个空文件。返回成功(true)/失败(false)。

    • public void delete()

      删除该File对象所表示的文件或文件夹。文件夹必须空空才能成功。

    • public boolean mkdir()

      创建一个单层文件夹。文件夹已存在则失败。

    • public boolean mkdirs()

      创建包括父目录在内的多级文件夹。忽略不存在的父目录则抛出异常。

    示例:

    File file = new File("F:/project/datastructuresandalgorithms/IODemo/a.txt");System.out.println(file.createNewFile());   // 创建新文件File dir = new File("F:/project/datastructuresandalgorithms/IODemo");System.out.println(dir.mkdirs());        // 创建包含父目录的新夹

    六、File 类目录的遍历

    要对文件或文件夹进行批量操作,可以使用以下方法:

    • public String[] list(FilenameFilter filter)

      根据自定义过滤器返回指定路径下的文件和目录名数组。

    • public File[] listFiles()

      返回指定路径下的所有文件File对象数组,排除目录。

    过滤器实现了灵活的文件筛选,可以实现特定文件类型或扩展名的筛选。

    ##七、过滤器的使用

    使用自定义过滤器可以实现更复杂的文件筛选。你也可以实现自己的FilenameFilter或FileFilter接口。

    示例:

    File dir = new File("F:/project/datastructuresandalgorithms/IODemo");File[] files = dir.listFiles(new FileFilter() {    @Override    public boolean accept(File pathname) {        return pathname.isDirectory() || pathname.getName().toLowerCase().endsWith(".java");    }});

    这将筛选出所有符合条件的文件和目录。

    八、FilenameFilter 文件名过滤器的使用

    使用FilenameFilter接口,你可以更加精确地筛选文件名:

    File dir = new File("F:/project/datastructuresandalgorithms/IODemo");File[] files = dir.listFiles(new FilenameFilter() {    @Override    public boolean accept(File dir, String name) {        return new File(dir, name).isDirectory() || name.toLowerCase().endsWith(".java");    }});

    这一方式适用于特定文件扩展名或文件类型的筛选。


    通过以上方法,File 类为Java程序员提供了对文件系统操作的全面控制,无论是单个文件操作还是批量遍历,都能轻松实现。在实际开发中,合理使用这些功能可以显著提高工作效率。

    转载地址:http://ittgz.baihongyu.com/

    你可能感兴趣的文章
    Python/Kivy:从一个类调用函数到另一个类并在 Python 中显示小部件
    查看>>
    Python/Kivy:我可以在双击标签时调用函数吗
    查看>>
    python内置函数5-frozenset()
    查看>>
    Python/Plotly:如何使用要显示的信息自定义悬停模板?
    查看>>
    Python/Selenium - 无法单击 www.instagram.com 上的“接受 cookie“按钮
    查看>>
    Python内置函数(35)——next
    查看>>
    python写入mysql
    查看>>
    python写入csv老是乱码或者各种不好
    查看>>
    Python内置函数
    查看>>
    Python2 安装MySQLdb库
    查看>>
    Python2 已终结,入手Python 3,你需要这30个技巧
    查看>>
    python写下拉列表在excel,无法使用python获取Excel下拉列表(组合框)值
    查看>>
    python2.7安装
    查看>>
    Python2.7安装ncmbot时提示:Microsoft Visual C++9.0 is required
    查看>>
    PYTHON2.Git.1
    查看>>
    python20181211
    查看>>
    Python内存管理机制
    查看>>
    Python2中range 和xrange的区别??
    查看>>
    python2和3的区别
    查看>>
    python2和python3的pip版本升级
    查看>>