如何从Java读取文件夹中的所有文件?
如何通过Java读取文件夹中的所有文件?
public void listFilesForFolder(final File folder) {
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
listFilesForFolder(fileEntry);
} else {
System.out.println(fileEntry.getName());
}
}
}
final File folder = new File("/home/you/Desktop");
listFilesForFolder(folder);
Files.walk API可从Java 8获得。
try (Stream<Path> paths = Files.walk(Paths.get("/home/you/Desktop"))) {
paths
.filter(Files::isRegularFile)
.forEach(System.out::println);
}
该示例使用API指南中推荐的try-with-resources模式。 它确保无论什么情况下该溪流都将被关闭。
File folder = new File("/Users/you/folder/");
File[] listOfFiles = folder.listFiles();
for (File file : listOfFiles) {
if (file.isFile()) {
System.out.println(file.getName());
}
}
在Java 8中,您可以执行此操作
Files.walk(Paths.get("/path/to/folder"))
.filter(Files::isRegularFile)
.forEach(System.out::println);
它将打印文件夹中的所有文件,同时排除所有目录。 如果你需要一个列表,下面将做到:
Files.walk(Paths.get("/path/to/folder"))
.filter(Files::isRegularFile)
.collect(Collectors.toList())
如果你想返回List<File>
而不是List<Path>
只需映射它:
List<File> filesInFolder = Files.walk(Paths.get("/path/to/folder"))
.filter(Files::isRegularFile)
.map(Path::toFile)
.collect(Collectors.toList());
您还需要确保关闭流! 否则,你可能会遇到一个异常,告诉你打开了太多文件。 在这里阅读更多信息。
链接地址: http://www.djcxy.com/p/78373.html上一篇: How to read all files in a folder from Java?
下一篇: Is it possible to read from a InputStream with a timeout?