IO流之節點流(字符流)和數據流關閉

​輸入流----Reader

 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         }

輸出流----Writer

Writer-----不關閉,數據不出現code

流的關閉

.flush()-----將最後一點數據放進文件()blog

.close()-----關閉流內存

輸入輸出流就像一我的瓶子經過吸管向另外一個瓶子滴水,當第一個瓶子裏的水滴完後,水並不能徹底到另外一個瓶子裏,吸管裏還有一些水,此時就須要經過.flush()將吸管裏的水所有趕到杯子裏,而後經過.close()關閉流資源

 

程序中打開的文件IO流資源不屬於內存中的資源,垃圾回收機制沒法回收,須要手動關閉it

相關文章
相關標籤/搜索