在Java的文件夹中打开多个“ txt”

时间:2018-12-01 12:52:33

标签: java file java-8 java-stream

在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());

1 个答案:

答案 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);
}