返回顶部
首页 > 资讯 > 精选 >JDK7新特性之遍历文件树的示例分析
  • 226
分享到

JDK7新特性之遍历文件树的示例分析

2023-06-17 12:06:27 226人浏览 安东尼
摘要

这篇文章主要介绍jdk7新特性之遍历文件树的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!有时需要递归遍历一个文件树,比如查找一个文件夹内符合条件的文件,查找某一天创建的文件……。jdk7 NIO包提供一个新

这篇文章主要介绍jdk7新特性之遍历文件树的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

有时需要递归遍历一个文件树,比如查找一个文件夹内符合条件的文件,查找某一天创建的文件……。jdk7 NIO包提供一个新的接口 FileVisitor。它提供了遍历文件树的各种操作。

preVisitDirectory - 一个路径被访问时调用

PostVisitDirectory - 一个路径的所有节点被访问后调用。如果有错误发生,exception会传递给这个方法

visitFile - 文件被访问时被调用。该文件的文件属性被传递给这个方法

visitFileFailed - 当文件不能被访问时,此方法被调用。Exception被传递给这个方法。

如果你比较懒,不想实现所有方法。你可以选择继承 SimpleFileVisitor。它帮你实现了上述方法,你只需Override 你感兴趣的方法。

下面给个例子,简单地遍历一个文件夹,打印出所有信息

Java代码

import java.io.IOException;     import java.nio.file.FileVisitResult;     import java.nio.file.Files;     import java.nio.file.Path;     import java.nio.file.Paths;     import java.nio.file.SimpleFileVisitor;     import java.nio.file.attribute.BasicFileAttributes;             public class FileVisitorTest extends SimpleFileVisitor {                  private void find(Path path){             System.out.printf("访问-%s:%s%n",(Files.isDirectory(path)?"目录":"文件"),path.getFileName());         }         @Override        public FileVisitResult visitFile(Path file,BasicFileAttributes attrs){             find(file);             return FileVisitResult.CONTINUE;         }                  @Override        public FileVisitResult preVisitDirectory(Path dir,BasicFileAttributes attrs){             find(dir);             return FileVisitResult.CONTINUE;         }                  @Override        public FileVisitResult visitFileFailed(Path file,IOException e){             System.out.println(e);             return FileVisitResult.CONTINUE;         }                  public static void main(String[] args) throws IOException{             if(args.length!=1){                 System.out.println("请输入一个文件路径作为参数");                 System.exit(-1);             }             Files.walkFileTree(Paths.get( args[0]), new FileVisitorTest());         }     }

随便选择一个路径作为参数

java FileVisitorTest "C:\\Program Files\\Java\\jre7\\bin"

运行结果代码

访问-目录:bin     访问-文件:awt.dll     访问-文件:axbridge.dll     访问-目录:client     访问-文件:classes.jsa     访问-文件:JVM.dll     访问-文件:Xusage.txt     访问-文件:dcpr.dll     访问-文件:deploy.dll     访问-文件:deployJava1.dll     访问-文件:dt_shmem.dll     访问-文件:dt_Socket.dll     ......

注意 FileVisitResult有四种

CONTINUE –继续

TERMINATE –终止,这次遍历结束了

SKIP_SUBTREE –子树(当前路径的子目录)不再遍历了

SKIP_SIBLINGS –兄弟节点(同级别目录)不再访问了。

可以通过这些返回值来控制遍历文件树的流程

以上是“JDK7新特性之遍历文件树的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: JDK7新特性之遍历文件树的示例分析

本文链接: https://lsjlt.com/news/289224.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • JDK7新特性之遍历文件树的示例分析
    这篇文章主要介绍JDK7新特性之遍历文件树的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!有时需要递归遍历一个文件树,比如查找一个文件夹内符合条件的文件,查找某一天创建的文件……。jdk7 nio包提供一个新...
    99+
    2023-06-17
  • ES9新特性之异步遍历Async iteration的示例分析
    这篇文章主要介绍了ES9新特性之异步遍历Async iteration的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。异步遍历在讲解异步遍历之前,我们先回想一下ES6...
    99+
    2023-06-15
  • JavaScritp中二叉树遍历算法的示例分析
    这篇文章主要为大家展示了“JavaScritp中二叉树遍历算法的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScritp中二叉树遍历算法的示例...
    99+
    2024-04-02
  • ECMAScript6新特性之let、const的示例分析
    这篇文章将为大家详细讲解有关ECMAScript6新特性之let、const的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。es6中的新特性之“let”。首先,这...
    99+
    2024-04-02
  • HTML5新特性的示例分析
    小编给大家分享一下HTML5新特性的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!   一:新增的功能   更加语义...
    99+
    2024-04-02
  • ECMAScript6新特性的示例分析
    这篇文章将为大家详细讲解有关ECMAScript6新特性的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。箭头函数function() 函数的简写表示法,但它不绑定...
    99+
    2024-04-02
  • MySQL 8新特性之Invisible Indexes的示例分析
    小编给大家分享一下MySQL 8新特性之Invisible Indexes的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧...
    99+
    2024-04-02
  • ES6新特性之字符串的示例分析
    这篇文章主要介绍了ES6新特性之字符串的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、ES5字符串函数concat: 将两个或多...
    99+
    2024-04-02
  • js中遍历的示例分析
    这篇文章将为大家详细讲解有关js中遍历的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。forEaches5出来的方法,这是我在react中用的最多的遍历方法之一,...
    99+
    2024-04-02
  • ES6新特性之函数扩展的示例分析
    这篇文章主要介绍ES6新特性之函数扩展的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:一、函数参数默认值1. ES6允许为函数的参数设置默认值,即直接写在参数定义的...
    99+
    2024-04-02
  • ES6新特性之类和继承的示例分析
    这篇文章主要介绍了ES6新特性之类和继承的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、类(Class)1.基本语法JavaSc...
    99+
    2024-04-02
  • Css3新特性应用之形状的示例分析
    这篇文章主要为大家展示了“Css3新特性应用之形状的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Css3新特性应用之形状的示例分析”这篇文章吧。一、自...
    99+
    2024-04-02
  • ES6新特性之数组扩充的示例分析
    这篇文章给大家分享的是有关ES6新特性之数组扩充的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:1. Array.from()1) Array.from方法用于...
    99+
    2024-04-02
  • css3中新特性的示例分析
    这篇文章主要为大家展示了“css3中新特性的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“css3中新特性的示例分析”这篇文章吧。css3被拆分成如下的...
    99+
    2024-04-02
  • JDK-12新特性的示例分析
    这篇文章主要介绍了JDK-12新特性的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。说明目前JDK12已经发布,而且我估计大多数人还在使用JDK8,但是做程序开发的人...
    99+
    2023-06-20
  • js遍历集合的示例分析
    这篇文章将为大家详细讲解有关js遍历集合的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Array可以使用下标,Map和Set不能使用下标,ES6引入了itera...
    99+
    2024-04-02
  • Go循环遍历的示例分析
    小编给大家分享一下Go循环遍历的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在Golang的流程控制中,循环语句有for和range两种。for语句1....
    99+
    2023-06-06
  • 详解ES9的新特性之异步遍历Async iteration
    目录异步遍历异步iterable的遍历异步iterable的生成异步方法和异步生成器异步遍历 在讲解异步遍历之前,我们先回想一下ES6中的同步遍历。 根据ES6的定义,iterati...
    99+
    2024-04-02
  • ES6新特性之let和const命令的示例分析
    这篇文章主要介绍了ES6新特性之let和const命令的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:1. let 命令①...
    99+
    2024-04-02
  • Vue3中teleport新特性的示例分析
    Vue3中teleport新特性的示例分析,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Vue鼓励我们通过将UI和相关行为封装到组件中来构...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作