如何在 Java 中使用 Scanner 读取多行并在特定字符串之前结束?

How do I read multiple lines and end before a certain string using Scanner in Java?

我试图在到达特定字符串“***”之前从文本文件中读取多行,然后我想将其打印出来。我该怎么做呢? 代码:

public void loadRandomClass(String filename) {
    try {
        Scanner scan = new Scanner(new File(filename));
        while((scan.hasNextLine()) && !(scan.nextLine().equals("***"))) {
        
        }
        scan.close();

    } catch (FileNotFoundException e) {
        System.out.println("Something went wrong");
        e.printStackTrace();
    }
    
}

我尝试了一些东西,但它从第一行开始每第二行一直跳过,并且不会在“***”之前停止。

问题是 scan.nextLine() 读取该行并将其从我想的缓冲区中删除。试试这个:


while(scan.hasNextLine()) {
   String next = scan.nextLine();
   if(next.contains("***") break;
   System.out.println(next);
}