注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

放飞自由

年轻人,如果三年的时间里,没有任何想法,他这一生,就基本这个样子,没有多大改变。

 
 
 

日志

 
 

Java I/O系统之目录器  

2011-06-08 01:28:03|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

很多时候,我们希望通过程序在某个路径下找到符合我们要求的文件< >,并进行解析。假如我们的文件名称已有一些列动态的变量组成的,而在查找的时候也是"动态"的,怎么解决?目录列表!!

[code lang="java"] import java.io.File; import java.io.FilenameFilter; import java.util.Arrays; import java.util.regex.Pattern; /** * 目录列表器 * 列出某个目录下符合条件的的文件 * @author Administrator * */ public class DirList { public static void main(String[] args){ File files = new File("F:/project/yxt_hb20110121/IO/src"); //有人认为认为File这个名字命名的并不是很好,而是倾向于FilePath,我们可以看到,list其实返回的是 目录的列表,其实就是 //一个文件名称的数组< > String[] list = files.list(new DirFilter("^\\w+.java$")); Arrays.sort(list,String.CASE_INSENSITIVE_ORDER); for(String str : list) System.out.println(str+ "-----"); } //accept()方法必须接受一个特定文件所在目录的File对象,以及包含了那个文件名得String //list()方法会为此目录对象下的每个文件名调用accept()以判断文件是否符合筛选条件,返回boolean值 } class DirFilter implements FilenameFilter{ Pattern pattern ; public DirFilter(String regex){ pattern = Pattern.compile(regex); } public boolean accept(File dir, String name) { return pattern.matcher(name).matches(); } } [/code] 修该为匿名类 [code lang="java"] import java.io.File; import java.io.FilenameFilter; import java.util.Arrays; import java.util.regex.Pattern; /** * 目录列表器 * 列出某个目录下符合条件的的文件 * @author Administrator * */ public class DirList2 { public static void main(String[] args){ File files = new File("F:/project/yxt_hb20110121/IO/src"); final String regex = "^\\w+.java$"; String[] list = files.list(new FilenameFilter(){ public boolean accept(File dir, String name) { return Pattern.compile(regex).matcher(name).matches(); } }); Arrays.sort(list,String.CASE_INSENSITIVE_ORDER); for(String str : list) System.out.println(str+ "-----"); } } [/code] 从代码上看,我们可以看到,第二个方法会比第一个方法简洁了很多,但是另一方面来说给阅读带来了一定的难度,但是学习的只是一种思想不是吗?
  评论这张
 
阅读(66)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017