在文件中搜索特定文本并将以下内容复制到 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.
}
我正在使用 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.
}