Java Files.list
上次修改时间:2024 年 7 月 6 日
在本文中,我们将展示如何使用 Java 中的 Files.list
列出文件。
Files.list
返回一个惰性填充的目录元素流。 此列表不是递归的。
流的元素是 Path
对象。
列出当前目录
第一个示例列出当前目录。
Main.java
import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; void main() throws IOException { var path = Paths.get("."); try (var files = Files.list(path)) { files.forEach(System.out::println); } }
点符号表示当前工作目录。 我们使用 Paths.get
获取路径对象。
列出 home 目录中的目录
以下示例列出用户 home 目录中的目录。
Main.java
import java.io.File; import java.io.IOException; import java.nio.file.Files; void main() throws IOException { var homeDir = System.getProperty("user.home"); var path = new File(homeDir).toPath(); try (var files = Files.list(path)) { files.filter(p -> p.toFile().isDirectory()) .forEach(System.out::println); } }
我们使用 toFile
将路径对象转换为 File
,并调用 isDirectory
方法。 流使用 filter
进行过滤。
按文件扩展名列出
下一个程序列出所有 PDF 文件。
Main.java
import java.io.IOException; import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Paths; void main() throws IOException { var homeDir = System.getProperty("user.home") + FileSystems.getDefault().getSeparator() + "Downloads"; try (var files = Files.list(Paths.get(homeDir))) { files.filter(path -> path.toString().endsWith(".pdf")) .forEach(System.out::println); } }
该程序列出 Downloads 目录中的 PDF 文件。 路径对象被转换为字符串,我们对字符串调用 endsWith
以检查它是否以 pdf
扩展名结尾。
计数文件
我们计算 PDF 文件的数量。
Main.java
import java.io.IOException; import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Paths; void main() throws IOException { var homeDir = System.getProperty("user.home") + FileSystems.getDefault().getSeparator() + "Downloads"; try (var files = Files.list(Paths.get(homeDir))) { var nOfPdfFiles = files.filter(path -> path.toString() .endsWith(".pdf")).count(); System.out.printf("There are %d PDF files", nOfPdfFiles); } }
文件的数量由 count
确定。
来源
在本文中,我们使用了 Files.list
来列出目录内容。
作者
列出所有Java教程。