Java 的 Files类(java.nio.file.Files)提供了多种方法来处理文件系统中的文件。比直接使用File文件要方便的多了。
使用Files工具类可以对目录文件进行深度遍历,如下所示。
实现思路:使用Files的walkFileTree方法,该方法有两个参数,其中一个参数是要遍历的目录的路径,另一个参数是FileVisitor接口,此处使用了该接口的实现类SimpleFileVisitor,该类实现了postVisitDirectory(遍历目录)和visitFile(遍历文件)方法。
public class Demo01 {
public static void main(String[] args) throws IOException {
//遍历目录
File root=new File("path");
//深度遍历目录内容
//SimpleFileVisitor是FileVisitior的实现类 该类实现了FileVisitor中的所有方法
Files.walkFileTree(root.toPath(),new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
System.out.println("【目录】"+dir);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
System.out.println("【文件】:"+file+"("+file.toFile().length()+"个字节");
return FileVisitResult.CONTINUE;
}
});
}
}