zoukankan      html  css  js  c++  java
  • java中readLine()方法为什么有的行读不到?

      今天在使用java对IO操作时,readLine()输出到控制台的行少了很多。后来发现readLine()实际上是一次读取一行。如果我们不话readLine()读取的行内容赋给一个字符串的话,每直接调用一次readLine()方法,实际上就是往下读一行。最后你会发现它变成了隔行读取。

      下面两段代码中。直接system.out.println(br.readLine()),实际上就是输出的while循环后的下一行。当我们将readLine()的结果赋值给一个变量是,输出的是变量的内容而没有再次调用readLine()方法,所以输出的是正常内容。

      输出文件的部分行的内容:

     1     public static void main(String[] args) throws Exception {
     2         //获取读取流
     3         FileReader reader = new FileReader("C:\Users\杨华彬\Desktop\test.txt");
     4         BufferedReader br = new BufferedReader(reader);
     5         
     6         while (br.readLine() != null) {
     7             //注意这里输出的是readLine(),while循环中的和输出中的readLine()方法被掉了两次,所以会隔行读取。
     8             System.out.println(br.readLine());
     9         }
    10 
    11         //关闭读取流
    12         br.close();
    13         reader.close();
    14     }

      正常输出文本的额内容:

     1     public static void main(String[] args) throws Exception {
     2         //获取读取流
     3         FileReader reader = new FileReader("C:\Users\杨华彬\Desktop\test.txt");
     4         BufferedReader br = new BufferedReader(reader);
     5         
     6         String string = null;
     7         while ((string = br.readLine()) != null) {
     8             //注意这里输出的是string,实际上readLine()方法只被调用了一次。
     9             System.out.println(string);
    10         }
    11 
    12         //关闭读取流
    13         br.close();
    14         reader.close();
    15     }
  • 相关阅读:
    HTML5然还在草案阶段
    简单的JS动态加载单体
    步步为营 C# 技术漫谈 五、事件与委托机制
    .NET简谈脚本引擎系列(一:认识脚本引擎)
    微软一站式示例代码库 6月再次更新14个新示例代码
    CLR(公共语言运行时)到底藏在哪?
    .NET简谈构件系统开发模式
    项目管理理论与实践系列文章索引
    .Net调试技巧
    Lucene.Net
  • 原文地址:https://www.cnblogs.com/yanghuabin/p/6203961.html
Copyright © 2011-2022 走看看