File 类

  1. 理解文件

什么是文件: 文件其实就是在 Windows 操作的时候, 经常创建使用的.txt, .exe, .mp3 等, 这些都可以称之为文件

文件可以简单地理解为: 在外设硬盘上保存数据的一种方式
文件可以由两部分构成: 属性(文件大小、文件名、文件类型等) + 内容

  1. File 文件操作类

File 类的包名是 java.io, 其实现了 Serilizable, Comparable 两大接口以便于其对象的可序化和比较

2.1 构造方法

在这里插入图片描述
2.2 File 类常用方法 - 基本文件操作

在这里插入图片描述
在 Windows 下路径分隔符使用的是 \ , 而在 Linux/Unix 下使用的是 / . 所以在使用分隔符的时候会采用 File 类的一个常量 \ : public static final String separator来描述

System.out.println(File.separator);

可以打印出当前系统下的分隔符(\ 或者 /)

2.3 File 类常用方法 - 目录操作

在这里插入图片描述

2.4 File 类常用方法 - 文件属性操作

在这里插入图片描述
2.5 绝对路径和相对路径

绝对路径: 是指目录下的绝对路径, 直接到达目标位置, 通常是从盘符开始的路径. 完整的描述文件所在的位置.
相对路径: 相对于某个目录的路径. (./ 或者 . 表示当前目录) (··/ 表示上级目录) 使用相对路径创建文件的时候, 此时生成的文件就在当前目录下.

     // 全路径
        File file = new File("F:\\learnJavaWeb\\io-study\\data\\呵呵.txt");
        System.out.println(file.exists()); // 判断文件是否存在
        // 相对路径
        File file1 = new File("../data/呵呵.txt");
        System.out.println(file1.exists());
        // 查看当前 Java 代码的的路径(当前目录)
        File file2 = new File(".");
        System.out.println(file2.getAbsolutePath()); // 获取绝对路径
        File file3 = new File("data/呵呵.txt"); // File 类写相对路径的方式不建议在真实的项目中使用
        System.out.println(file3.exists()); // exists() 文件是否存在
        System.out.println(file3.getPath()); // 获取路径
        System.out.println(file3.lastModified()); // 获取上次修改时间

2.6 File 类常用方法 - 其他操作
在这里插入图片描述

    File file4 = new File("F:\\learnJavaWeb");
        File[] children = file4.listFiles(); // 返回目录下一级的子文件和子文件夹数组
        for (File child : children) {
            System.out.println(child.getName()); // 获取文件名
        }

案例: 递归获取目录下的所有子文件和子文件夹

public static List<File> list(File file) {
        List<File> files = new ArrayList<>();
        if (file.isFile()) {
            files.add(file);
        } else {
            File[]  children = file.listFiles(); // 下一级子文件和子文件夹
            for (File child : children) {
                List<File> ret = list(child);
                files.addAll(ret);
            }
        }
        return files;
    }

    @Test
    public void t3() {
        File file4 = new File("F:\\learnJavaWeb");
        List<File> children = list(file4);
        for (File child : children) {
            System.out.println(child.getName()); // 获取文件名
        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值