java8 的filespath类相关文件遍历API

Posted 西方不落

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java8 的filespath类相关文件遍历API相关的知识,希望对你有一定的参考价值。

Path的两种初始化(应该还有别的方式)

Path file = new File(path).toPath();

Paths.get

判断是文件、是目录

Files.isRegularFile(file)

Files.isDirectory(file)

javadoc说,还有既不是文件也不是目录的情况

Files.find

通过属性和路径筛选,可以筛选是文件,而路径匹配 PathMatcher 样式的。深度可以指定 integer max,无尽深度,或者限定1、2级深度。

PathMatcher 通过 FileSystem.getPathMatcher(String syntaxAndPattern) 获取。按javadoc介绍,有glob和regex两种方式。使用了glob的,没有使用regex的。 glob的支持 {*.gz,*.json} 这样的匹配方式。

还有 Files.walk, directorystream的api调用。这三个api可以遍历目录树,比file listfiles手写递归用高效多了。

返回的流,可以使用skip、limit,进行分页,然后调用foreach,对结果遍历处理。

 

以上是关于java8 的filespath类相关文件遍历API的主要内容,如果未能解决你的问题,请参考以下文章

Java的数据结构相关的类实现

java8及8之前日期相关类

Java 基础Java 8 Stream 相关内容的简单总结

Java8 通过foreach 遍历List,同时输出下标

还在用分割字符获取文件名等信息吗?

Java8中Stream类中的forEach是抽象方法,为啥在调用的时候不用重写该方法就能实现遍历?