1 public class Reader { 2 public static void main(String[] args) throws Exception { 3 //獲取字符輸入流的地址 4 FileReader reader = new FileReader("D:\\reader.txt"); 5 //定義讀取到的長度 6 int len = 0; 7 //一次讀取到的數據長度 8 char[] c = new char[4]; 9 //len=reader.read(c)從reader.read(c)讀取到的長度 10 while ((len=reader.read(c))!=-1){ 11 for (char i : c){ 12 System.out.println(i); 13 } 14 } 15 } 16 }
因爲數組一次讀取四個,讀取最後一次時字符數組內只有黨更新了,國共產仍是上一次的數據,最後一次理應只有黨輸出數組
解決上述問題spa
1 while ((len=reader.read(c))!=-1){ 2 for (int i=0;i<len;i++){//i<len,len從reader.read(c)內讀取的長度 3 System.out.println(c[i]); 4 } 5 }
code
.flush()-----將最後一點數據放進文件()blog
.close()-----關閉流內存
輸入輸出流就像一我的瓶子經過吸管向另外一個瓶子滴水,當第一個瓶子裏的水滴完後,水並不能徹底到另外一個瓶子裏,吸管裏還有一些水,此時就須要經過.flush()將吸管裏的水所有趕到杯子裏,而後經過.close()關閉流資源
程序中打開的文件IO流資源不屬於內存中的資源,垃圾回收機制沒法回收,須要手動關閉it