File类

博客介绍了File类,它可将文件或文件夹封装成对象,便于操作文件与文件夹属性,还能作为参数传递给流的构造函数。同时列举了获取、创建与删除、判断、重命名等方法,并给出两个简单使用示例,如深度遍历文件夹和找出以.java结尾的文件。

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

File类:用来将文件或文件夹封装成对象,方便对文件与文件夹的属性进行操作,File对象可以作为参数传递给流的构造函数。
·获取方法:

    ·getName():获取文件名
    ·getAbsolutePath():获取文件的绝对路径
    ·getPath():获取文件的相对路径
    ·length():返回此抽象路径名表示的文件的长度,如果此路径名表示目录,则返回值未指定。
    ·lastModified():返回此抽象路径名表示的文件的上一次更改时间。此时间要包装成Date类对象才能按正常的时间显示。
    ·list():获取当前目录下的文件以及文件夹,包括隐藏文件
    ·过滤器:endWith(),带参,参数是过滤条件
    ·isHidden():显示隐藏文件 

·创建与删除方法:

    ·File():带参,创建文件
    ·mkdir():创建文件夹
    ·creatNewFile():创建文件,若文件已存在则创建失败
    ·delete():删除文件

·判断

    ·exists():文件是否存在
    ·isFile():是否是文件
    ·isDirectory():是否是文件夹

·重命名:

	·renameTo():带参,参数为新名

简单使用1:实现对某文件夹的深度遍历,以树形打印在控制台

public class DeepSearch {
    public static void main(String[] args) {
        File dir = new File("g:\\demo");
        listAll(dir, 0);
    }
    
	private static void listAll(File dir, int level) {
        System.out.println(getSpace(level) + dir.getName());
        //获取指定目录下当前的所有文件夹或者文件对象
        level++;
        File[] files = dir.listFiles();
        for (int x = 0; x < files.length; x++) {
            if (files[x].isDirectory()) {
                listAll(files[x], level);
            } else {
                System.out.println(getSpace(level) + files[x].getName());
            }
        }
    }

    private static String getSpace(int level) {
        StringBuilder sb = new StringBuilder();
        sb.append("|--");
        for (int x = 0; x < level; x++) {
            sb.insert(0, "|  ");
        }
        return sb.toString();
    }
}    

简单使用2:在某文件夹中找出.java结尾的文件,打印在控制台

/**
 * 过滤器
 */
class SuffixFilter implements FilenameFilter {

    private String suffix;

    public SuffixFilter(String suffix) {
        super();
        this.suffix = suffix;
    }

    @Override
    public boolean accept(File dir, String name) {
        return name.endsWith(suffix);
    }
}

public class DeepSearch {
    public static void main(String[] args) {
        File dir = new File("g:\\demo");
        String filter = ".java";
        listAllFiles(dir, filter);
    }

    private static void listAllFiles(File dir, String filter) {
        if (dir == null || !dir.exists()) {
            return;
        }
        if (dir.isFile()) {
            System.out.println(dir.getName());
            return;
        }
        for (File file : Objects.requireNonNull(dir.listFiles(new SuffixFilter(filter)))) {
            listAllFiles(file, filter);
        }
    }
}    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值