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

    你可能感兴趣的文章
    NetCore 上传,断点续传,可支持流上传
    查看>>
    Netcraft报告: let's encrypt和Comodo发布成千上万的网络钓鱼证书
    查看>>
    Netem功能
    查看>>
    netfilter应用场景
    查看>>
    Netflix:当你按下“播放”的时候发生了什么?
    查看>>
    Netflix推荐系统:从评分预测到消费者法则
    查看>>
    netframework 4.0内置处理JSON对象
    查看>>
    Netgear WN604 downloadFile.php 信息泄露漏洞复现(CVE-2024-6646)
    查看>>
    Netgear wndr3700v2 路由器刷OpenWrt打造全能服务器(十一)备份
    查看>>
    netlink2.6.32内核实现源码
    查看>>
    netmiko 自动判断设备类型python_Python netmiko模块的使用
    查看>>
    NetMizer 日志管理系统 多处前台RCE漏洞复现
    查看>>
    NetMizer-日志管理系统 dologin.php SQL注入漏洞复现(XVE-2024-37672)
    查看>>
    Netpas:不一样的SD-WAN+ 保障网络通讯品质
    查看>>
    netron工具简单使用
    查看>>
    NetScaler MPX Gateway Configuration
    查看>>
    NetScaler的常用配置
    查看>>
    netsh advfirewall
    查看>>
    NETSH WINSOCK RESET这条命令的含义和作用?
    查看>>
    netstat kill
    查看>>