在Java 8中,我需要读取和保存文件夹中的多个文本文件。我的意思是2000。应该怎么办? 我可以如下打开文件夹:
try (Stream<Path> paths = Files.walk(Paths.get("home\path"))) {
paths
.filter(Files::isRegularFile)
.collect(Collectors.toList())
.forEach(System.out::println);
}
这还将打印文件的位置。我只是这样做才知道我可以进入该文件夹。
可以如下所述读取文件。但是,如何获得我想要的所有2000个文件的名称?
File encyptFile=new File("file1.txt");
System.out.println(encyptFile.canRead());
答案 0 :(得分:2)
您可以通过调用Path::getFileName
方法来做到这一点,就像这样:
try (Stream<Path> paths = Files.walk(Paths.get("home\path"))) {
paths
.filter(Files::isRegularFile)
.map(Path::getFileName)
.collect(Collectors.toList())
.forEach(System.out::println);
}
如果您还需要某些扩展名验证,则可以按path.toString().toLowerCase().endsWith(".txt")
这样的文件名按扩展名添加过滤器
示例:
try (Stream<Path> paths = Files.walk(Paths.get("home\path"))) {
paths
.filter(Files::isRegularFile)
.filter(path -> path.toString().toLowerCase().endsWith(".txt"))
.map(Path::getFileName)
.collect(Collectors.toList())
.forEach(System.out::println);
}