Java 如何按多个值筛选文件中的行?

Java 如何按多个值筛选文件中的行?,java,Java,我有一个文件,需要从字符串列表中筛选所有包含字符串的行 您能建议如何在每次我按值筛选时不重新打开文件的情况下执行此操作吗 这就是我所拥有的: for (String str : lines){ try (BufferedReader br = new BufferedReader(new FileReader(fileToRead))) { filteredLines.addAll(br.lines().filter(line -> line.contains(st

我有一个文件,需要从字符串列表中筛选所有包含字符串的行

您能建议如何在每次我按值筛选时不重新打开文件的情况下执行此操作吗

这就是我所拥有的:

for (String str : lines){
    try (BufferedReader br = new BufferedReader(new FileReader(fileToRead))) {
        filteredLines.addAll(br.lines().filter(line -> line.contains(str)).collect(Collectors.toList()));
    }
}
我试着用模拟问题来解决问题,但没能成功

提前感谢。

公共静态void main(字符串args[]){
public static void main(String args[]) {

        String fileName = "c://sampleFile.txt";

        try (Stream<String> stream = Files.lines(Paths.get(fileName))) {

            List<String> filteredLines = stream.filter(...).collect(Collectors.toList());

        } catch (IOException e) {
            // handle exception
        }

    }
String fileName=“c://sampleFile.txt”; try(Stream=Files.line(path.get(fileName))){ List filteredLines=stream.filter(…).collect(Collectors.toList()); }捕获(IOE异常){ //处理异常 } }
也许下一步会对你有所帮助

如果要像在行中找到任何字符串一样应用筛选器,请使用下面的
anyMatch
。如果希望所有字符串都必须出现在行中,请将其替换为
allMatch

    List<String> keywords = Arrays.asList("my", "key", "word");

    try (BufferedReader br = new BufferedReader(new FileReader("fileToRead"))) {
        //this is the filtered lines
        List<String> filteredLine = br.lines()
            .filter(line -> keywords.stream().anyMatch(line::contains))
            .collect(Collectors.toList());
    }
List keywords=Arrays.asList(“my”、“key”、“word”);
try(BufferedReader br=new BufferedReader(new FileReader(“fileToRead”)){
//这是过滤后的行
列表过滤器基线=br.lines()
.filter(行->关键字.stream().anyMatch(行::包含))
.collect(Collectors.toList());
}

很抱歉,我不知何故没有将第一行添加到我的代码:for(String str:list)中。因此,我的问题是如何根据列表中的所有值筛选行?