Java中File类方法整理

本文介绍了Java的File类用于文件操作的基本方法,包括创建、删除、重命名文件,以及判断文件类型和获取文件信息。同时,文章还讨论了如何使用FileFilter接口和lambda表达式实现文件过滤,以获取特定类型的文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

现将File类中对于文件的操作进行整理。

import java.io.File;
import java.io.IOException;
import java.util.Arrays;

public class FileSummarize {
    public static void main(String[] args) throws IOException {
        //创建File对象:系统中文件或文件夹的抽象表示。 File (String pathname)
        File file = new File("D:\\Desktop\\Desktop\\Test\\a.txt");

/* 创建功能 */
        //只负责创建文件,已存在则false,目标路径如果不存在会报错
        System.out.println(file.createNewFile());

        //只负责创建目录,但可以创建多级目录,如果多级目录不存在,则帮你全部创建
        //public boolean mkdirs ()

/* 重命名功能*/
        //重新命名此抽象路径名表示的文件
        File file3 = new File("D:\\Desktop\\Desktop\\Test\\a.txt");
        file3.renameTo(new File("D:\\Desktop\\Desktop\\Test\\b.txt"));

/* 删除功能*/
        // 删除此抽象路径名表示的文件或目录。如果此路径名表示一个目录,则该目录必须为空才能删除(否则false)
        // delete不会因为文件不存在,路径名不正确而抛出异常,只会返回false, 并且不会进入回收站
        System.out.println(file3.delete());

/* 判断功能*/
        File file4 = new File("D:\\Desktop\\Desktop\\Test\\noun.txt");
        // 判断File对象是否表示的是一个文件
        System.out.println(file4.isFile());
        //判断File对象是否表示的是一个目录
        System.out.println(file4.isDirectory());
        //判断File表示的文件是否物理存在
        System.out.println(file.exists());

/* 获取功能 */
        //获取File对象表示的抽象文件的绝对路径
        System.out.println(file4.getAbsolutePath());

        //获取File对象表示的抽象文件,路径名字符串
        System.out.println(file4.getPath());

        //获取文件或者目录的名字
        System.out.println(file4.getName());

        //返回由此抽象路径名表示的文件的长度。不能返回文件夹的长度
        //此抽象路径名表示的文件的长度,以字节为单位;如果文件不存在,则返回 0L
        System.out.println(file4.length());

        //返回此抽象路径名表示的文件最后一次被修改的时间戳。
        System.out.println(file4.lastModified());

/* 高级获取功能 */
        /* 返回一个此抽象的路径名表示的目录下的文件和文件夹的名字的字符串数组
           只能获取当前目录的下一层,并不是获取所有层级
           如果File对象表示的是一个文件,则返回null
          如果是一个空目录,返回一个长度为0的数组,而不是null  []  */
        //public String[] list()
        File file5 = new File("D:\\Desktop\\Desktop\\Test");
        System.out.println(Arrays.toString(file5.list()));

        /* 返回此抽象路径名下的文件和文件夹的绝对路径形式的File对象数组
           只能获取当前目录的下一层,并不是获取所有层级
           如果File对象表示的是一个文件,则返回null
          如果是一个空目录,返回一个长度为0的数组,而不是null  */
        //public File[] listFiles()
        System.out.println(Arrays.toString(file5.listFiles()));

    }
}

文件过滤器

  • 自定义获取功能是在高级获取功能的基础上,加了一个过滤器,所以高级功能的特点它都有

  • FileFilter是一个接口,它只有下面一个方法

//测试指定抽象路径名是否应该包含在某个路径名列表中
boolean accept(File pathname)

这个方法相当于把高级功能中listFiles()获取的File数组中File对象遍历一遍,然后逐个判断

符合条件的留下,不符合条件的干掉(丢弃)

  • 常用匿名内部类来做实现

举例:

import java.io.File;
import java.io.FileFilter;
import java.util.Arrays;
/*
输出某个目录(单级)下的所有java文件,使用过滤器.
*/
public class Demo {
    public static void main(String[] args) {
        //创建File对象 ---> 目录
        File dir = new File("D:\\Test");
        // 使用带过滤器的listFiles方法
        // 匿名子类对象
        //File[] files = dir.listFiles(new MyFilter());

        // 匿名内部类
        //File[] files = dir.listFiles(new FileFilter() {
        //    @Override
        //    public boolean accept(File pathname) {
        //        return pathname.getName().endsWith(".jpg");
        //    }
        //
        //});

        // lambda方式
        File[] files = dir.listFiles(pathName -> pathName.getName().endsWith(".jpg"));

        System.out.println(Arrays.toString(files));
    }
}

class MyFilter implements FileFilter{
    @Override
    public boolean accept(File pathname) {
        return pathname.getName().endsWith(".java");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值