以前學習java的時候也沒有太在意,直到最近做項目時使用了才發現這個問題,總是第一個字元輸不出來
bufferedreader這個類借用别人的話來說,就是一個包裝類
它可以包裝字元流,将字元流放入緩存裡,先把字元讀到緩存裡,到緩存滿了或者你flush的時候,再讀入記憶體,就是為了提高讀的效率而設計的。
讀取一個txt檔案,方法很多種而我使用的是字元流來讀取
int c;
FileReader file = new FileReader("D:\\emDemo.java");
BufferedReader br = new BufferedReader(file);
while((c=br.read())!=-1){
System.out.println(br.readLine());
}
發現每行的第一個字元都沒有顯示出來,後來發現 c=br.read())!=-1 每次都會先讀取一個位元組出來,是以後面的br.readLine());
讀取的就是每行少一個位元組
是以,應該使用
String input = null;
while ((input=br.readLine())!=null){
System.out.println(input);
}
這樣就能解決了