博客
关于我
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/

    你可能感兴趣的文章
    Node-RED中使用node-random节点来实现随机数在折线图中显示
    查看>>
    Node-RED中使用node-red-browser-utils节点实现选择Windows操作系统中的文件并实现图片预览
    查看>>
    Node-RED中使用node-red-contrib-image-output节点实现图片预览
    查看>>
    Node-RED中使用node-red-node-ui-iframe节点实现内嵌iframe访问其他网站的效果
    查看>>
    Node-RED中使用Notification元件显示警告讯息框(温度过高提示)
    查看>>
    Node-RED中使用range范围节点实现从一个范围对应至另一个范围
    查看>>
    Node-RED中实现HTML表单提交和获取提交的内容
    查看>>
    Node-RED中将CSV数据写入txt文件并从文件中读取解析数据
    查看>>
    Node-RED中建立TCP服务端和客户端
    查看>>
    Node-RED中建立Websocket客户端连接
    查看>>
    Node-RED中建立静态网页和动态网页内容
    查看>>
    Vue3+Element-ul学生管理系统(第二十二课)
    查看>>
    Node-RED中解析高德地图天气api的json数据显示天气仪表盘
    查看>>
    Node-RED中连接Mysql数据库并实现增删改查的操作
    查看>>
    Node-RED中通过node-red-ui-webcam节点实现访问摄像头并截取照片预览
    查看>>
    Node-RED中配置周期性执行、指定时间阶段执行、指定时间执行事件
    查看>>
    Node-RED安装图形化节点dashboard实现订阅mqtt主题并在仪表盘中显示温度
    查看>>
    Node-RED怎样导出导入流程为json文件
    查看>>
    Node-RED订阅MQTT主题并调试数据
    查看>>
    Node-RED通过npm安装的方式对应卸载
    查看>>