嵌套 lambda 表达式的问题 - 无法添加到外部列表 vairable

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

我正在尝试在并行文件流中搜索字符串。 (outputLines =) 这一步编译错误。我无法弄清楚问题所在。请帮忙。我需要保留 inputFiles.parallelStream() 的代码,然后我需要逐行读取文件,然后搜索字符串。我不能这样做。请指教。谢谢。

    public List<String> searchForText(List<Path> inputFiles, String SEARCH_TOKEN) {
        List<String> outputLines = new ArrayList<>();
        inputFiles.parallelStream().forEach(path -> {
            try (Stream<String> lines = Files.lines(path)) {
                outputLines = lines.filter(a -> a.trim().contains(SEARCH_TOKEN)).collect(Collectors.toList());
            } catch (IOException e) {
                e.printStackTrace();
            }
        });

        return outputLines;
    }

我尝试了多种方法将该行添加到 outputLines,但因为它在 lambda 表达式中被调用,所以它迫使我最终确定。当有嵌套的 lambda 表达式时,如何从内部 lambda 表达式添加到外部 lambda 表达式的列表。请指教。

java file search lambda
© www.soinside.com 2019 - 2024. All rights reserved.