欢迎来到之路教程(on itroad-com)
Files.newDirectoryStream() - 列出所有文件和子目录
Java 提供了一种更灵活的方式来使用 Files.newDirectoryStream()
来遍历目录内容。
如果目录比较大,文件比较多, 那么使用 DirectoryStream
实际上会使代码更快。
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; public class IterateDirectoryExample { public static void main(String[] args) { String dirLocation = "C:/temp"; try { for (Path path : Files.newDirectoryStream(Paths.get(dirLocation))) { // 只列出文件 // for (Path path : Files.newDirectoryStream(Paths.get(dirLocation), // path -> path.toFile().isFile())) { path = path.normalize(); System.out.println(path.getFileName()); } } catch (IOException e) { // Error while reading the directory } } }
Files.list() - 遍历所有文件和子目录
import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.List; import java.util.stream.Collectors; public class IterateDirectoryExample { public static void main(String[] args) { String dirLocation = "C:/temp"; try { List<File> files = Files.list(Paths.get(dirLocation)) // .filter(Files::isRegularFile) 只列出普通文件,不包括子目录 .map(Path::toFile) .collect(Collectors.toList()); files.forEach(System.out::println); } catch (IOException e) { // Error while reading the directory } } }
日期:2020-09-17 00:09:23 来源:oir作者:oir