JAVA File类初探(一)(Java编程思想)

File类不仅可以表示一个文件,也可以表示一个目录下的所有文件,如果指的是一个文件集,我们就可以调用list()方法来获得文件名数组,有两种方法可以获得这个字符数组。

1.第一种为无参数的list()方法调用

public class TestFile {
    public static void main(String[] args) {
        File path = new File(".");
        String[] list = null;
        list = path.list();
        for (String str : list) {
            System.out.println(str);
        }
    }
}

可以得到该目录下的所有文件名称。

2.第二种是使用FilenameFilter接口来实现对文件名的筛选
FilenameFilter接口其实很简单,它里面只有一个accept()方法,这个accept()方法的作用是返回一个布尔值,如果通过了筛选条件返回true,反之则返回false。源码如下所示:

public interface FilenameFilter {
    boolean accept(File dir, String name);
}

只需要实现FilenameFilter接口,然后使用list(FilenameFilter filter)方法就可以对文件名集合进行筛选。这种使用FilenameFilter接口的方法是使用了策略模式,提高了代码的灵活性。
listFile()可以返回一个File数组,和之前的list()不同,之前的list()返回的是一个字符串数组,这个则是File数组,有着更多的文件描述信息。

public File[] listFiles() {
    String[] ss = list();
    if (ss == null) return null;
    int n = ss.length;
    File[] fs = new File[n];
    for (int i = 0; i < n; i++) {
        fs[i] = new File(ss[i], this);
    }
    return fs;
}

File类也可以用来创建当前不存在的路径和目录

public class TestFile {
    public static void main(String[] args) {
        File f = new File("d://zxoa3");
        if (!f.exists()) {
            f.mkdirs();
        } else {
            f.delete();
        }
    }

}

File类可以查看文件的一些文件信息比如大小,是否为目录等等

public class TestFile {
    public static void main(String[] args) {
        File f = new File("d://zxoa.log");
        System.out.println(
                "get absolutePath: " + f.getAbsolutePath() +
                "\ncan read: " + f.canRead() +
                "\ncan write: " + f.canWrite() +
                "\nget name: " + f.getName() +
                "\nget path: " + f.getPath() + 
                "\nget last modified: " + f.lastModified() +
                "\nlength: " + f.length()
        );
        if (f.isFile()) {
            System.out.println("f is file");
        }
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值