将文件列表读入流中

问题描述 投票:0回答:1

我想验证由我的应用程序生成的一些链接。这些生成的文件包含我想要与正则表达式匹配的大量行,以检查它们是否正确。

我被困的地方:我已经声明了我的文件列表,我想将它们打开成流,所以我可以用流做一些奇特的Java编码。

现在我的代码看起来像这样:

   return !(Files.lines(Path.of(String.valueOf(FileList)))
      .anyMatch(v -> !v.matches(pattern));

这些文件位于项目的工作目录中,因此只需要一个文件名即可访问它们。我想逐行读取文件以检查错误的行。这是用流读取文件列表的方法吗?如果您知道有任何其他方法可以使用流进行此工作,请分享。非常感谢!

java file java-8 stream directory
1个回答
0
投票

我已经声明了我的文件列表

假设这是你的FileList变量1,并且它是List<String>(未指定的问题),那么你会做这样的事情:

Predicate<String> matches = Pattern.compile(pattern).asMatchPredicate();
return FileList.stream().allMatch(f -> {
    try {
        return Files.lines(Paths.get(f)).allMatch(matches);
    } catch (IOException e) {
        throw new RuntimeException(e);
    }
});

1)Java命名约定指定变量名称应以小写字母开头。

© www.soinside.com 2019 - 2024. All rights reserved.