博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
File对象目录列表器
阅读量:4573 次
发布时间:2019-06-08

本文共 1566 字,大约阅读时间需要 5 分钟。

/** * *File对象即能代表一个文件又能代表一组目录下的特定文件集;如果它代表一组文件那可以用list方法返回一组字符数组,数组内的对象是该目录下的符合条件的每个文件。      为什么说符合条件下这个前提呢?因为调用list方法可以无参和有参两种。无参代表该目录下的一组文件。有参它接受输入一个filenameFilter策略接口,通过accept方法可以自定义过滤的条件 */ public class DirList {        public static void main(String[] args) {                        File file=new File(".");        String[] list;        if(args.length==0) {            list=file.list();        }else {            list=file.list(new DirFilter(args[0]));//new DirFilter出代码因为实现了FilenameFilter接口;所以只要实现了该接口的类都可以;此处利用策略模式,提高了代码的灵活性        }        Arrays.sort(list, String.CASE_INSENSITIVE_ORDER);//忽略大小写字母将单词都放在一起排序        for(String dirName:list) {            System.out.println(dirName);                    }    }    }
/* *1.创建这个类的目的是提供accept供file.list方法使用;使list可以回调accept方法;进而决定哪些文件包含在列表中 */ public class DirFilter implements FilenameFilter {    private Pattern pattern;    public DirFilter(String regex) {        pattern=Pattern.compile(regex);    }            @Override    public boolean accept(File dir, String name) {        return pattern.matcher(name).matches();    }}
File.class源码: public String[] list(FilenameFilter filter) {        String names[] = list();        if ((names == null) || (filter == null)) {            return names;        }        List
v = new ArrayList<>(); for (int i = 0 ; i < names.length ; i++) { if (filter.accept(this, names[i])) { v.add(names[i]); } } return v.toArray(new String[v.size()]); }

 

转载于:https://www.cnblogs.com/zhangfengshi/p/9311479.html

你可能感兴趣的文章
在weblogic下运行Python脚本
查看>>
短信开发技术总结--协议篇
查看>>
HashMap实现原理分析
查看>>
私有类方法
查看>>
java网络编程Socket通信详解
查看>>
为什么使用Nosql:Nosql和SQL的区别
查看>>
<转>DNS服务系列之二:DNS区域传送漏洞的安全案例
查看>>
LINUX中常用操作命令
查看>>
【android】动画效果研究(View)【1】
查看>>
(三)常用的数学函数
查看>>
生产信息集成分析平台(MIIAS V1.0) 概述
查看>>
学习进度——第十五周
查看>>
iOS开发UI篇—从代码的逐步优化看MVC
查看>>
简谈-网络爬虫的几种常见类型
查看>>
File对象目录列表器
查看>>
(K)ubuntu上将分区格式化成NTFS格式
查看>>
uva 12003 Array Transformer (大规模阵列)
查看>>
mysql5.7二进制包安装方式
查看>>
SQL With As 用法Sql 四大排名函数(ROW_NUMBER、RANK、DENSE_RANK、NTILE)简介
查看>>
装饰者模式——Java设计模式
查看>>