Java -IO
来源:互联网 发布:什么是网络消费贷款 编辑:程序博客网 时间:2024/06/05 23:49
目录列表–DirFilter这个类存在的唯一原因就是将accept()方法。创建这个类的目的在于把accept()方法提供给list()使用,使list()可以回调accept(),进而决定那些文件包含在列表中。
package cn.io;import java.io.File;import java.io.FilenameFilter;import java.util.Arrays;import java.util.regex.Pattern;public class DirList { public static void main(String[] args) { File path = new File("."); String [] list; if(args.length == 0) list = path.list(); else list = path.list(new DirFilter(args[0])); Arrays.sort(list,String.CASE_INSENSITIVE_ORDER); for(String dirItem:list) System.out.println(dirItem); }}class DirFilter implements FilenameFilter{ private Pattern pattern; public DirFilter(String regex){ pattern =Pattern.compile(regex); } public boolean accept(File dir,String name){ return pattern.matcher(name).matches(); }}
匿名—注意,传向filter()的参数必须未final。这在匿名内部类中是必须的,这样它才能够使用来自
该类范围之外的对象。
package cn.io;import java.io.File;import java.io.FilenameFilter;import java.util.Arrays;import java.util.regex.Pattern;public class DIrList2 { public static FilenameFilter filter(final String regex){ return new FilenameFilter(){ private Pattern pattern = Pattern.compile(regex); public boolean accept(File dir,String name){ return pattern.matcher(name).matches(); } };//End of anonymous inner class(匿名内部类) } public static void main(String[] args) { File path = new File("."); String [] list; if(args.length == 0) list = path.list(); else list = path.list(filter(args[0])); Arrays.sort(list,String.CASE_INSENSITIVE_ORDER); for(String dirItem:list) System.out.println(dirItem); }}
优化–定义一个作为list()参数的匿名内部类
public class DirList3 { public static void main(final String[] args) { File path = new File("."); String [] list; if(args.length == 0) list =path.list(); else list = path.list(new FilenameFilter() { private Pattern pattern = Pattern.compile(args [0]); public boolean accept(File dir,String name){ return pattern.matcher(name).matches(); } }); Arrays.sort(list ,String.CASE_INSENSITIVE_ORDER); for(String dirItem:list) System.out.println(dirItem); }}
阅读全文
0 0
- 【Java-IO】IO入门
- Java IO:IO框架
- 【IO】java IO 总结
- java IO
- IO.java
- JAVA IO
- JAVA IO
- java IO
- java io
- JAVA IO
- java IO
- java IO
- java io
- java io
- java io
- java IO
- java IO
- java io
- GBK和UTF-8互转尾部乱码问题分析
- 02:浮点型数据类型存储空间大小
- 排序算法(5)----堆排序
- 循环队列的实现
- 关于static_cast、dynamic_cast、const_cast、reinterpret_cast
- Java -IO
- 51 nod 1495 中国好区间 奇葩卡时间题 700ms 卡O(n-log(n)), 思路:O(n)尺取法
- googlevr for unity 快速制作全景视频播放器
- 用svn版本号或其他信息找历史内容
- sql之left join、right join、inner join的区别
- Unity 几个插件
- Java必读源码
- 架构师之路
- 使用IDEA Maven搭建mybatis环境