如何将文本文件读入arraylist,不包括包含某些单词的行?

0 java arraylist

我试图做一个程序,读取命名的文本文件text.txtArrayList.之后,它必须删除包含"我爱蛋糕"字样的任何文本行

所以说这是文件中的文字:

I love cake so much
yes i do
I love cake
I dont care
Run Code Online (Sandbox Code Playgroud)

这是我的代码.我有它阅读文件,但我不明白我如何删除某些行(包含"我爱蛋糕").

import java.io.*;
import java.util.*;
public class Cake {
    public static void main(String[] args) throws Exception {
        File fileIn = new File("text.txt");
        ArrayList<String> text = new ArrayList<String>();
        Scanner s= new Scanner(fileIn);    
        String line;

        while (s.hasNextLine()) {
            line = s.nextLine();
            System.out.println(line);
        }
        s.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

ste*_*fen 6

Java8:

Path file = new File("text.txt").toPath();
List<String> linesWithoutCake = Files.lines(file)
        .filter(s -> !s.contains("I love cake"))
        .collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)

您可以继续使用包含不包含模式的行的流.例如计算它们:

long count = Files.lines(file).filter(s -> !s.contains("I love cake")).count();
Run Code Online (Sandbox Code Playgroud)