打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
java文件过滤器(File类listFiles方法可选参数)

 原地址:http://blog.sina.com.cn/s/blog_7a27a9bf0100s887.html

           有时候需要在程序中查找某一目录下的某一类文件,例如需要在E:\data\file_selector_test 目录下面查找所有已.java为后缀名的文件。其实这个功能自己也可以实现,很简单,只需要遍历一下目录下的所有文件,判断一下文件名称的结尾字符串是否为".java"即可。虽然这么做可以实现,但是没有必要,java api中已经有相关的方法来实现这一功能。

File类有一个listFiles(FileNameFilter filter).只需要实现一个简单的filter就可以做到。例如我要在E:\data\file_selector_test 目录下面查找以.java 或者.txt结尾的文件,我可以这么做。见下例。

类名:FileNameSelector

 

import java.io.File;
    import java.io.FilenameFilter;

public class FileNameSelector implements FilenameFilter
{
 String extension = ".";
 public FileNameSelector(String fileExtensionNoDot)
 {
  extension += fileExtensionNoDot;
 }
 @Override
 public boolean accept(File dir, String name)
 {
  return name.endsWith(extension);
 }
 public static void main(String[] args)
 {
  File directory = new File("E:\\data\\file_selector_test");
  //列出所有文件
  File[] files = directory.listFiles();
  System.out.println("\n目录"+directory.getName()+"下的所有文件");
  for(File file : files)
  {
   System.out.print("  " + file.getName());
  }
  //列出所有.txt文件
  File[] txtFiles = directory.listFiles(new FileNameSelector("txt"));
  System.out.println("\n目录"+directory.getName()+"下的.txt文件");
  for(File file : txtFiles)
  {
   System.out.print("  " + file.getName());
  }
  
  //列出所有.java文件
  File[] javaFiles = directory.listFiles(new FileNameSelector("java"));
  System.out.println("\n目录"+directory.getName()+"下的.java文件");
  for(File file : javaFiles)
  {
   System.out.print("  " + file.getName());
  }
 }
}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
java中File类的使用方法
java file.listFiles()按文件名称、日期、大小排序
在java中如何遍历某个路径下的所有文件夹和文件
在Java实现Dos中的文件操作命令功能
File类
Java基于Callable、Future多线程搜索文件代码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服