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