zoukankan      html  css  js  c++  java
  • 文件过滤器

    利用java.io包里的File类,可以实现对文件的操作。

    现在有个需求,要求遍历一个文件夹及其子文件夹里的所有文件,并且过滤出txt格式的文件,该如何做呢?

    实现方法很简单,首先是通过递归遍历文件,然后对获得的文件,判断其是不是以"txt"结尾就可以了。

    代码如下:

     1     public static void getAllFile(File dir) {
     2         File[] fileArr = dir.listFiles();
     3         for(File file:fileArr) {
     4             if(file.isDirectory())
     5                 getAllFile(file);
     6             if(file.isFile()) {
     7                 String fileName = file.getName();
     8                 if(fileName.toLowerCase().endsWith("txt"))
     9                     System.out.println(file);
    10             }
    11         }
    12     }

    其中,getAllFile的参数dir是文件的路径。

    运行结果如图

    也可以通过文件过滤器来实现。

    代码如下:

    class FileFilterImpl implements FileFilter{
        public boolean accept(File pathname) {
            //如果pathname 是个文件夹,返回true
            if(pathname.isDirectory())
                return true;
            return pathname.getName().toLowerCase().endsWith("txt");
        }
    public static void getAllFile(File dir) {
         //listFiles()函数将获得的路径名传给accept方法,
    //accept方法判断是文件还是文件夹,如果是文件夹返回true,
        //如果是文件,判断是不是txt格式的,如果是返回true,否则返回false
    File[] fileArr
    = dir.listFiles(new FileFilterImpl()); //文件过滤器 for(File file:fileArr) { if(file.isDirectory()) getAllFile(file); if(file.isFile()) { System.out.println(file); } } }

    运行结果如图:

  • 相关阅读:
    图文讲解ImageView的ScaleType
    android问题总结:
    芯片介绍
    js正则表达式中/=s*".*?"/g表示什么意思?
    fidder配置 https设置 手机客户端
    JAVAAndroid 多线程实现方式及并发与同步
    多线程之问题总结
    html_学习地址
    java保留小数后两位的四种写法
    Glide 加载部分圆角图片
  • 原文地址:https://www.cnblogs.com/Chsy/p/11807240.html
Copyright © 2011-2022 走看看