1. 程式人生 > >IO流(位元組流,字元流,緩衝流)

IO流(位元組流,字元流,緩衝流)

一:IO流的分類(組織架構)

  • 根據處理資料型別的不同分為:字元流和位元組流
  • 根據資料流向不同分為:輸入流和輸出流

    這麼龐大的體系裡面,常用的就那麼幾個,我們把它們抽取出來,如下圖:

    

  二:字元位元組,輸入輸出流的概念

     字元流和位元組流

      字元流的由來: 因為資料編碼的不同,而有了對字元進行高效操作的流物件。本質其實就是基於位元組流讀取時,去查了指定的碼錶。 位元組流和字元流的區別:

  • 讀寫單位不同:位元組流以位元組(8bit)為單位,字元流以字元為單位,根據碼錶對映字元,一次可能讀多個位元組。
  • 處理物件不同:位元組流能處理所有型別的資料(如圖片、avi等),而字元流只能處理字元型別的資料。

      結論:只要是處理純文字資料,就優先考慮使用字元流。 除此之外都使用位元組流。

     輸入流和輸出流

     對輸入流只能進行讀操作,對輸出流只能進行寫操作,程式中需要根據待傳輸資料的不同特性而使用不同的流。 

三;位元組流

     1:輸入位元組流InputStreamIO --->FileInputStream

        

     2:輸出位元組流OutputStream  --->FileOutputStream

      

四:字元流

 1:字元輸入流Reader --->FileReader

    

     2:字元輸出流Writer  --->FileWriter

    

五:位元組流字元流之間的轉換

    

   1: InputStreamReader是位元組流同向字元流的橋樑,如果不指定字元編碼,該解碼過程將使用系統預設的字元編碼: 如GBK:

   

   2:OutputStream用於將寫入的字元編碼成位元組後寫入一個位元組流。

    

六:緩衝流

    緩衝流也稱為處理流,對檔案或者其他目標頻繁的操作,效率低,效能差。緩衝流目的是提高程式讀取和寫出的效能。緩衝流也分為位元組緩衝流和字元緩衝流。

   使用緩衝流的好處是能夠更高效的讀寫資訊,原理是先將資料緩衝起來,然後一起寫入或者讀取出來。 

    1:緩衝位元組輸入流BufferedInputStream

    

    2:快取位元組輸出流BufferOutputStream 

    

    3:緩衝字元輸入流 BufferedReader

   

    4:緩衝字元輸出流 BufferWriter