在文件中搜索特定文本并将以下内容复制到 JAVA

Search for Specific text in a File and Copy the Following Content in JAVA

我正在使用 BufferedReader 读取文件并在文件中查找文本。如果找到文本,则需要将以下内容复制到另一个文件中。 文件内容如下所示:

...............
Transforming com.depositmobi.ActivationDoneActivity... 
Transforming com.depositmobi.ReadOffertActivity... 
Transforming dummyMainClass... 
Inside Possible Callers !
cg.size(): 976
sources: false null
Finished !!!!
CLINIT edge: $r1 = new com.depositmobi.Main in <dummyMainClass: void dummyMainMethod(java.lang.String[])> ==> <com.depositmobi.Main: void <clinit>()>
STATIC edge: staticinvoke <com.depositmobi.Main: void <clinit>()>() in <dummyMainClass: void dummyMainMethod(java.lang.String[])> ==> <com.depositmobi.Main: void <clinit>()>
CLINIT edge: $r12 = new android.view.View in <dummyMainClass: void dummyMainMethod(java.lang.String[])> ==> <android.view.View: void <clinit>()>
CLINIT edge: $r11 = new android.os.Bundle in <dummyMainClass: void dummyMainMethod(java.lang.String[])> ==> <android.os.Bundle: void <clinit>()>
CLINIT edge: $r10 = new com.depositmobi.ReadOffertActivity in <dummyMainClass: void dummyMainMethod(java.lang.String[])> ==> <android.app.Activity: void <clinit>()>
 ................

如果在文本文件中找到单词'Finished !!!!',复制全部内容,然后放入名为soot.txt的文件中.

使用下面的代码,我可以读取 'finished !!!' 之前的内容。完成后如何获取内容?

BufferedReader br = new BufferedReader(new FileReader(file));
while (!br.readLine().startsWith("Finished !!!!")) {
            System.out.println(br.readLine() );
    }

试试这个代码。

BufferedReader br = new BufferedReader(new FileReader(file)); 
String line;
Boolean finishedFound = Boolean.FALSE;
StringBuilder contents = new StringBuilder();
while ((line = br.readLine()) != null) {
            if(line.startsWith("Finished !!!!")) {
                finishedFound = Boolean.TRUE;
                continue;
            }
            if(finishedFound) {
                contents.append(line+System.lineSeparator());
            }

        }
 // Here your code to write the contents to soot.txt

你可以这样做:

List<String> linesAfterFinish = new ArrayList<>();
try(BufferedReader br = new BufferedReader(new FileReader(file))){
    boolean conditionWasMeet = false;
    for(String line; (line = br.readLine()) != null){
        if(conditionWasMeet){
            linesAfterFinish.add(line);
        }
        if(!conditionWasMeet && line.startsWith("Finished !!!!")){
            conditionWasMeet = true;
        }
    }
}catch(Exception e){
    e.printStackTrace();
}


if(!linesAfterFinish.isEmpty()){
    /// Write the content of linesAfterFinish to the other file.
}