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     }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM