欢迎来到之路教程(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
