java - 尝试分部分读取该文件。阅读部分内容并跳过部分内容

标签 java

我正在尝试读取一个文件,我想读取文件的某些部分并跳过某些部分,直到到达文件末尾。这就是我所拥有的,但我没有得到我想要的结果。这个想法是通读所有行并检查它是否以“CH”或“CL”开头,如果不移动到下一行直到文件末尾并存储所有匹配条件的行

 new BufferedReader (new FileReader ("c:\\demo5.properties\\"));
    while(( br.readLine()) != null ){
        if (br.readLine().startsWith("CH") ||  br.readLine().startsWith("CL")) {
        buf = new StringBuffer();
        buf.append( br.readLine());

        while (br.readLine()!= null && !br.readLine().startsWith("#") &&  !br.readLine().contains("claimID")){
            buf.append( br.readLine()).append( "\n" );
        }
         z = buf.toString();

         System.out.println(z);

        s3+= z;
    }
        br.readLine();

文件格式

 CH.field 
 CH.field
 CH.field
 CH.field
 CH.field
 #CH.field
 #CH.field
 #CH.field
 #CH.field
 *********
 **
 *********
 CL1.field
 CL1.field
 CL1.field
 CL1.field
 CL1.field
 *****************
#Result.CL1.field
#Result.CL1.field
#Result.CL1.field
Result.CL1.field
*********
CL4.field
CL4.field
CL4.field
#CL4.field
#CL4.field
#CL4.field
***********

   #Result.CL4
  #Result.CL4
  #Result.CL4
  #Result.CL
 Result.CL4
  CL5.field
 CL5.field
 CL5.field
 #CL5.field
 #CL5.field

输出

CH.fieldCH.field

CL1.field#Result.CL1.field
CL4.field
CL4.field

#CL4.field

CL5.fieldCL5.field

最佳答案

看看这个循环:

while (br.readLine()!= null 
       && !br.readLine().startsWith("#")
       &&  !br.readLine().contains("CH.field.claimID")){
    buf.append( br.readLine()).append( "\n" );
}

您正在调用 readLine() 4 次。这将读取四行不同的内容。你想要这样的东西:

String line;
while ((line = br.readLine()) != null &&
       !line.startsWith('#') &&
       !line.contains("CH.field.claimID")) {
    buf.append(line).append("\n");
}    

至少,我认为这就是你想要的 - 我发现描述有点令人困惑。无论如何,这将读取每一行,当它到达文件末尾或以“#”开头的行或包含“CH.field.claimID”的行时停止...但构建一个包含该点之前的所有行的 StringBuffer。

关于java - 尝试分部分读取该文件。阅读部分内容并跳过部分内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15503399/

相关文章:

java - 指定从 intellij 启动的应用程序的类路径

JavaFX - MediaPlayer 不工作

java - 从它的类子类调用对象的方法

java - 具有不同参数列表的继承

Java正则表达式分别匹配每个事件

java - Apache Thrift 未安装在 Mac 上

java - Java 中的 Curl --user 和 -d 等效项

java - Java中的泛型+可选参数不能组合

java - 以编程方式在相对布局中添加按钮网格

java - 如何在 Java 中编写一个通用函数以接收具有不同键类型的映射参数?