转自:
.java.io.File类是java中很常见的一个类。该类有一下特性:
1.封装了文件或路径。
2.不能用来创建文件,即在程序中创建一个File对象,并不会在机器上创建一个文件(感兴趣的同学可以去实践一下)。那创建的一个File对象不会创建一个文件,那这个File对象到底是什么呢?我个人理解这个File对象其实就是机器上某个文件的对象的引用。
3.不能用来向文件中写内容。
4.不能用来从文件中度内容。
下文笔者讲述java中Files.walk的功能简介说明,如下所示:
Files.walk的功能:
使用递归遍历以给定起始文件为根的文件树来返回由Path延迟填充的流
文件树是深度优先遍历的
例:
package com.java265; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.stream.Stream; public class FilesWalkRegularFilesEx { public static void main(String[] args) throws IOException { var dirName = "D:/test/Downloads"; try (Stream<Path> paths = Files.walk(Paths.get(dirName), 2)) { paths.filter(Files::isRegularFile) .forEach(System.out::println); } } }
计算文件夹大小
long size = Files.walk(Paths.get("D://"))
.peek(System.out::println)
.mapToLong(this::count)
.sum();