博客
关于我
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对象数组,排除目录。

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

    ##七、过滤器的使用

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

    示例:

    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/

    你可能感兴趣的文章
    Ploly烛台的定制颜色
    查看>>
    Ploly:如何在Excel中嵌入完全交互的Ploly图形?
    查看>>
    plotloss记录
    查看>>
    Plotly (Python) 子图:填充构面和共享图例
    查看>>
    Plotly 中的行悬停文本
    查看>>
    Plotly 停用 x 轴排序
    查看>>
    Plotly 域变量解释(多图)
    查看>>
    Plotly 绘制表面 3D 未显示
    查看>>
    Plotly-Dash 存在未知问题并创建“加载依赖项时出错“;通过使用 Python-pandas.date_range
    查看>>
    Plotly-Dash:如何过滤具有多个数据框列的仪表板?
    查看>>
    Plotly:如何为 x 轴上的时间序列设置主要刻度线/网格线的值?
    查看>>
    Plotly:如何从 x 轴删除空日期?
    查看>>
    Plotly:如何从单条迹线制作堆积条形图?
    查看>>
    Plotly:如何以 Root 样式绘制直方图,仅显示直方图的轮廓?
    查看>>
    Plotly:如何使用 Plotly Express 组合散点图和线图?
    查看>>
    Plotly:如何使用 plotly.graph_objects 和 plotly.express 定义图形中的颜色?
    查看>>
    Plotly:如何使用 Python 对绘图对象条形图进行颜色编码?
    查看>>
    Plotly:如何使用 updatemenus 更新一个特定的跟踪?
    查看>>
    Plotly:如何使用长格式或宽格式的 pandas 数据框制作线图?
    查看>>
    Plotly:如何向烛台图添加交易量
    查看>>