【问题标题】:Search for Specific text in a File and Copy the Following Content in JAVA在文件中搜索特定文本并在 JAVA 中复制以下内容
【发布时间】:2018-02-20 08:25:33
【问题描述】:

我正在使用 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 的文件中。 p>

使用以下代码,我可以在“完成!!!”之前读取内容。完成后如何获取内容?

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

【问题讨论】:

  • Finished !!!! 在文件中只出现一次吗?
  • 你已经尝试了什么?如果您还没有尝试过任何事情,请先开始,然后在遇到困难时提出问题。请提供一些代码。也请花点时间阅读how-to-ask on SO
  • 是的。我已手动添加它以识别拆分位置。

标签: java file bufferedreader


【解决方案1】:

试试这个代码。

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

【讨论】:

    【解决方案2】:

    你可以这样做:

    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.
    }
    

    【讨论】:

      猜你喜欢
      • 2011-07-08
      • 1970-01-01
      • 2018-05-03
      • 1970-01-01
      • 1970-01-01
      • 2013-03-18
      • 2011-09-16
      • 1970-01-01
      • 2014-12-14
      相关资源
      最近更新 更多