首页 > 代码库 > java中readLine()方法为什么有的行读不到?
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 }
java中readLine()方法为什么有的行读不到?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。