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

      

  • 相关阅读:
    [JS]格式化Date和分析格式化Date字符串的JS代码
    发布一个实用美观的Vista Sidebar Gadget (代表博客园参赛)
    2月8号N706从深圳回湖南,有没有同行的,呵呵
    LiveWriter测试
    自动内容滚动条[WinForm控件]
    关于Ajax的一揽子工程(1)
    “做事先做人”实战
    成熟度即流程
    金秋游故宫
    html块状元素、内联元素
  • 原文地址:https://www.cnblogs.com/tomato190/p/12668676.html
Copyright © 2020-2023  润新知