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;
                        }
                    });
    
        }
    

      

  • 相关阅读:
    序列JSON数据和四种AJAX操作方式
    jquery.validate和jquery.form.js实现表单提交
    JQuery Validate使用总结1:
    HOWTO: Include Base64 Encoded Binary Image Data (data URI scheme) in Inline Cascading Style Sheets (CSS)(转)
    SharePoint 2007 使用4.0 .Net
    动态IP解决方案
    取MS CRM表单的URL
    从Iframe或新开的窗口访问MS CRM 2011(转)
    Toggle or Hidden MS CRM Tab
    Windows 2008下修改域用户密码
  • 原文地址:https://www.cnblogs.com/tomato190/p/12668676.html
Copyright © 2011-2022 走看看