zoukankan      html  css  js  c++  java
  • 查找文件

    查找文件

    1.public string[] list();

    返回一个string数组,表示目录中的子文件/目录。

    2.public File[] listFile();

    返回一个File数组。

     

    public class SearchFile {
       public static void main(String[] args) {
           File file = new File("D:\JavaProject\BaseJava\src");//文件搜索的范围
           show1(file);
      }

       private static void show1(File f) {
           File[] files = f.listFiles();

           for (File file : files) {
               if(file.isDirectory()){//判断是否是目录,如果是,就调用show1()方法
                   show1(file);
              }else{
                   if(file.getName().toLowerCase().endsWith(".jpg")){//判断是否是“.jpg”结尾的文件
                       System.out.println(file);
                  }
              }
          }
      }
    }

     

    文件过滤器

    File[] listFile (FileFilter filter)

    抽象方法:boolean accept(File pathName);

    参数是使用 listFile()方法遍历得到的每一个文件对象。

     

    1.实现类做法

    public class TestFileFilterImpl implements FileFilter {
       @Override
       public boolean accept(File f) {//重写accept()方法
               if(f.isDirectory()) {
                   return true;
              }
               return f.getName().toLowerCase().endsWith("jpg");
          }

      }
    public class Application {
       public static void main(String[] args) {

           File f = new File("D:\JavaProject\BaseJava\src");
           show1(f);
      }

       private static void show1(File f) {
           File[] fs = f.listFiles(new TestFileFilterImpl());
           for (File file : fs) {
               if(file.isDirectory()){
                   show1(file);
              }
               else{
                   System.out.println(file);
              }
          }
      }
    }

    2.内部类

    public class InnnerClass {
       public static void main(String[] args) {
           File file = new File("D:\JavaProject\BaseJava\src");
           show1(file);
      }
        private static void show1(File f) {
            //用匿名内部类实现
           File[]  fs = f.listFiles(new FileFilter() {
               @Override
               public boolean accept(File p) {

                   return p.isDirectory() || p.getName().toLowerCase().endsWith("jpg");
              }
          });


           for (File file : fs) {
               if(file.isDirectory()){
                   show1(file);
              }
               else{
                   System.out.println(file);
              }
          }
        }

    3.lambda表达式

    File[] fs = f.listFiles(p ->p.isDirectory() ||p.getName().toLowerCase().endsWith("jpg"));



           for (File file : fs) {
               if(file.isDirectory()){
                   show1(file);
              }
               else{
                   System.out.println(file);
              }
          }

    ListFile方法:

    1.ListFile会对构造方法中传递的目录进行遍历,获取目录中文件和目录并封装为File对象

    2.ListFile会调用参数传递的过滤器中方法accept()方法

    3.会把遍历得到的每一个File对象传递给accept方法的参数pathName().

  • 相关阅读:
    CCNA 第二章 以太网回顾
    CCNA 第一章 网络互联
    solidworks中 toolbox调用出现未配置的解决方法
    linux之df命令
    linux之du命令
    linux之pid文件
    linux之mysql启动问题
    linux之使用cron,logrotate管理日志文件
    wordpress(一)wordpress环境的搭建
    phpwind8.7升级9.0.1过程(四)20130207升级到20141228
  • 原文地址:https://www.cnblogs.com/stydejava/p/13457955.html
Copyright © 2011-2022 走看看