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

    


免責聲明!

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



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