欢迎来到之路教程(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
		}
	}
}
Java 如何列出目录中存在的所有文件

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