java - 使用 java 的文件中的特定行

标签 java

我想从文件中打印特定行,例如第四行或第二行。这是我的代码,它只显示所有行和每行号。如果这是一个简单而愚蠢的问题,我很抱歉,但提前谢谢你:D。

FileReader fr = null;
      LineNumberReader lnr = null;
      String str;
      int i;

      try{
         // create new reader
         fr = new FileReader("test.txt");
         lnr = new LineNumberReader(fr);

         // read lines till the end of the stream
         while((str=lnr.readLine())!=null)
         {

            i=lnr.getLineNumber();
            System.out.print("("+i+")");

            // prints string
            System.out.println(str);
             }

      }catch(Exception e){

         // if any error occurs
         e.printStackTrace();
      }finally{

         // closes the stream and releases system resources
         if(fr!=null)
            fr.close();
         if(lnr!=null)
            lnr.close();
      }
   }
}

最佳答案

最简单的方法就是简单地跟踪您正在阅读的行。看起来您想使用 i为了那个原因。别忘了break一旦你读完你想要的行就退出循环。

此外, continue 语句表示“跳过其他所有内容并移至下一个迭代”。

参见The while and do-while Statements

     while((str=lnr.readLine())!=null)
     {
        i=lnr.getLineNumber();
        if(i != 57) continue;
        System.out.print("("+i+")");

        // prints string
        System.out.println(str);
        break;
     }

请记住,正如下面的评论提到的,LineNumberReader 从 0 开始读取。 。因此,这实际上会按自然顺序返回第 56 行。如果您想要自然排序的 57,则可以使用此条件语句。 if(i <= 57) continue;

关于java - 使用 java 的文件中的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26354774/

相关文章:

java - Delphi Web 服务中的复杂类型

java - 我如何返回时间;来自 printDetails 中的 ClockDisplay() 对象?

java - MySql 备份不工作

java - jsf hibernate 标准 api

java - Java图形中绘制平滑曲线

java - GAE 注销 url 出现错误 404

java - 多对多关系中没有序号键的枚举

java - 解析特殊格式的字符串

java - 这是我的代码。当我执行它时,一个空字符串被插入到数据库中。但是,我对数据库中的所有字段使用 varchar 20

java - 将对象转换为其原始类