将文件列表读入流

时间:2019-02-28 18:09:45

标签: java file java-8 stream directory

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

卡住的地方:我已经声明了一个文件列表,我想将它们打开到流中,以便可以对流进行一些精美的Java编码。

现在我的代码如下:

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

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

1 个答案:

答案 0 :(得分: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命名约定指定变量名称应以小写字母开头。