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     }

 

转载于:https://www.cnblogs.com/yanghuabin/p/6203961.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值