zoukankan      html  css  js  c++  java
  • File过滤器

    File过滤器

    1、listFiles(FileFilter filter) 返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。

    作用:用来过滤文件(Filter对象)

    listFiles会做的事:

    a:如果里面不传FileFilter过滤器,就会返回抽象路径名数组

    b:如果里面传FileFilter过滤器,那么就返回通过过滤器的返回值为true的元素组成的数组。(即符合过滤器的规则。)

    /**
    * @program: intellij idea
    * @description:1、`listFiles(FileFilter filter)` 返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。
    *2、`listFiles(FilenameFilter filter)` 返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。
    * @author: lixy
    * @create: 2020-05-07 12:42
    **/
    public class FileFilterImpl implements FileFilter {

      @Override
      public boolean accept(File pathname) {
          return pathname.isFile() && pathname.getName().endsWith(".java");
      }
    }
    public class Demo02Main {
      public static void main(String[] args) {
          bl(new File("F:\intellij idea\day11\src\com\lixy"));
      }
      private static void bl(File dir) {
          File[] files = dir.listFiles(new FileFilterImpl());
          for (File file : files) {
                  System.out.println(file);
          }
      }
    }
    结果:
    F:intellij ideaday11srccomlixyFileMethod.java
    F:intellij ideaday11srccomlixyMyFile.java

    public class Demo03Main {
      public static void main(String[] args) {
          bl(new File("F:\intellij idea\day11\src\com\lixy"));
      }
      private static void bl(File dir) {
          File[] files = dir.listFiles(new FileFilter() {//匿名内部类,
              @Override
              public boolean accept(File pathname) {
                  return pathname.isFile() && pathname.getName().endsWith(".java");
              }
          });
          for (File file : files) {
                  System.out.println(file);
          }
      }
    }

    public class Demo04Main {
      public static void main(String[] args) {
          bl(new File("F:\intellij idea\day11\src\com\lixy"));
      }
      private static void bl(File dir) {
          //使用Lambda表达式
          File[] files = dir.listFiles((pathname)->{return pathname.isFile() && pathname.getName().endsWith(".java");});
          for (File file : files) {
                  System.out.println(file);
          }
      }
    }

    2、listFiles(FilenameFilter filter) 返回一个抽象路径名数组,表示由此抽象路径名表示的满足指定过滤器的目录中的文件和目录。

    作用:用来过滤文件名称

    public boolean accept(File dir, String name) {//测试指定文件是否应包含在文件列表中。
      //参数
      //dir - 找到该文件的目录。
      //name - 文件的名称。
      return new File(dir,name).isFile() && new File(dir,name).getName().endsWith(".java");
    }
    public class Demo03Main {
      public static void main(String[] args) {
          bl(new File("F:\intellij idea\day11\src\com\lixy"));
      }
      private static void bl(File dir) {
          File[] files = dir.listFiles(new FilenameFilter() {
              @Override
              public boolean accept(File dir, String name) {
                  return new File(dir,name).isFile() && name.endsWith(".java");
              }
          });
          for (File file : files) {
                  System.out.println(file);
          }
      }
    }
  • 相关阅读:
    606. Construct String from Binary Tree
    696. Count Binary Substrings
    POJ 3255 Roadblocks (次短路)
    POJ 2823 Sliding Window (单调队列)
    POJ 1704 Georgia and Bob (博弈)
    UVa 1663 Purifying Machine (二分匹配)
    UVa 10801 Lift Hopping (Dijkstra)
    POJ 3281 Dining (网络流之最大流)
    UVa 11100 The Trip, 2007 (题意+贪心)
    UVaLive 4254 Processor (二分+优先队列)
  • 原文地址:https://www.cnblogs.com/lxy522/p/12846653.html
Copyright © 2011-2022 走看看