zoukankan      html  css  js  c++  java
  • FileVistror类的用法

    这是NIO类提供的遍历指定目录下的所有文件和子目录的方法。

    是使用FIles的walkFileTree方法,其中有一个起始路径,还有一个FileVisitor这个访问器。一旦遍历文件,都会自动触发这个访问器中的方法。其中有四个方法

        FileVisitResult preVisitDirectory(T var1, BasicFileAttributes var2) throws IOException;
    
        FileVisitResult visitFile(T var1, BasicFileAttributes var2) throws IOException;
    
        FileVisitResult visitFileFailed(T var1, IOException var2) throws IOException;
    
        FileVisitResult postVisitDirectory(T var1, IOException var2) throws IOException;
    }
    

     实际使用中,使用

    public class SimpleFileVisitor<T> implements FileVisitor<T> {
        protected SimpleFileVisitor() {
        }
    
        public FileVisitResult preVisitDirectory(T dir, BasicFileAttributes attrs) throws IOException {
            Objects.requireNonNull(dir);
            Objects.requireNonNull(attrs);
            return FileVisitResult.CONTINUE;
        }
    
        public FileVisitResult visitFile(T file, BasicFileAttributes attrs) throws IOException {
            Objects.requireNonNull(file);
            Objects.requireNonNull(attrs);
            return FileVisitResult.CONTINUE;
        }
    
        public FileVisitResult visitFileFailed(T file, IOException exc) throws IOException {
            Objects.requireNonNull(file);
            throw exc;
        }
    
        public FileVisitResult postVisitDirectory(T dir, IOException exc) throws IOException {
            Objects.requireNonNull(dir);
            if (exc != null) {
                throw exc;
            } else {
                return FileVisitResult.CONTINUE;
            }
        }
    }
    

      这个类,然后选择需要重写的方法即可。

    例如

     public static void main(String[] args) throws IOException {
            Path path = Files.walkFileTree(Paths.get("G:", "wht", "ideaPro"),
                    new SimpleFileVisitor<Path>() {
                        @Override
                        public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                            Objects.requireNonNull(file);
                            Objects.requireNonNull(attrs);
                            System.out.println("正在访问:"+file+"文件");
                            if(file.endsWith("FileVistorTest.java")){
                                System.out.println("----找到文件------");
                                return FileVisitResult.TERMINATE;
                            }
                            return FileVisitResult.CONTINUE;
                        }
    
                        public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
                            Objects.requireNonNull(dir);
                            Objects.requireNonNull(attrs);
                            System.out.println("正在访问:"+dir+"路径");
                            return FileVisitResult.CONTINUE;
                        }
                    });
    
        }
    

      

  • 相关阅读:
    随机森林算法参数调优
    BAYES和朴素BAYES
    阿里云 金融接口 token PHP
    PHP mysql 按时间分组 表格table 跨度 rowspan
    MySql按周,按月,按日分组统计数据
    PHP 获取今日、昨日、本周、上周、本月的等等常用的起始时间戳和结束时间戳的时间处理类
    thinkphp5 tp5 会话控制 session 登录 退出 检查检验登录 判断是否应该跳转到上次url
    微信 模板消息
    php 腾讯 地图 api 计算 坐标 两点 距离 微信 网页 WebService API
    php添加http头禁止浏览器缓存
  • 原文地址:https://www.cnblogs.com/tomato190/p/12668676.html
Copyright © 2011-2022 走看看