java使用递归遍历文件,使用内部类过滤文件,使用匿名内部类过滤文件

public class TestFile {
  public static void main(String [] args) {
  //遍历文件夹中文件名称,若文件夹中还存有文件夹,递归读取文件夹名称
    File file = new File("D:\\javafile"); //假设文件保存在D:\\javafile中
    new TestFile().show(file);
  }

  public void show(File file) {
    File[] files = file.listFiles();
    for(File fs : files) {
      System.out.println(fs.getName());
      if(fs.isDirectory()) {
        show(fs);
      }
    }
  }
}

 

//使用内部类过滤文件

public class TestFile{
  public static void main(String [] args) {
    File file = new File("D:\\javafile");
    new TestFile().show(file);
  }

  public void show(File file) {
    File [] files = file.listFiles();

    for(File fs : files) {
      if(new MyFilenameFilter().accept(fs, fs.getName())) {
        System.out.println(fs.getName());
      }
    }
  }

  //在TestFile类的内部,定义MyFilenameFilter类,实现FilenameFilter过滤器的方法
  class MyFilenameFilter implements FilenameFilter{
    public boolean accept(File file, String name) {
    

    //假设在D:\\javafile文件夹内部保存有.txt格式的文件

    if(name.endsWith(".txt")) {
        return true;
      }
      return false;
    }
  }
}

 

//使用匿名内部类过滤文件

public class TestFile{
  public static void main(String [] args) {
    File file = new File("D:\\javafile");
    new TestFile().show(file);
  }

  public void show(File file) {

     //红色部门极为匿名内部类部分
    File [] files = file.listFiles(new FilenameFilter(){
      @Override
      public boolean accept(File file, String name) {
        if(name.endsWith(".txt")) {
          return true;
        }
        return false;
      }
    });

    for(File fs : files) {
      System.out.println(fs.getName());
    }
  }
}

posted on 2018-03-03 23:00  00011101  阅读(182)  评论(0编辑  收藏  举报