第7次文章:IO流中的重點流
- 2019 年 10 月 8 日
- 筆記
這周的內容是對前面已經學過的一些重要IO流進行一個框架的總結,沒有放相關的程式碼。這幾個流的用法都比較簡單,正在學Java的小夥伴兒,學到此處的時候,一看就懂!
一、節點流
節點流屬於最小單元,有位元組流和字元流兩種類別
1、位元組流
讀取:InputStream
寫出:OutputStream
位元組流可以處理一切內容。
2、字元流
讀取:Reader
寫出:Writer
字元流只能處理純文本文件,所謂的純文本文件也就是人類能夠看懂的文件。
二、處理流
處理流主要是緩衝流,提高IO流在讀取和寫出時候的性能,避免產生錯誤。主要的緩衝流有兩個,讀取緩衝流BufferedInputStream,寫出緩衝流BufferedOutputStream。在使用緩衝流的時候十分簡單,用法就是:緩衝流(節點流)。
三、轉換流
在對文件進行操作的時候,很多情況下會產生亂碼。在電腦中,亂碼的產生只有兩個原因。第一:文件在讀取和寫出的時候沒有使用統一的編碼和解碼集,例如Java平台中的jbk編碼解碼集,UTF-8編碼集等等。當讀取或者寫出操作使用的是兩個不一樣的編碼解碼集的時候,就會對結果產生亂碼的影響。第二:在讀取寫出操作的時候,文件的長度有損失,即資訊不完整。當操作過程中,出現位元組資訊丟失的問題時,同樣會導致最終的結果出現亂碼的情況。
轉換流的使用,就是在對文件操作的時候,指定相同的編碼解碼集,在同樣的集合下,對文件進行相應的處理。主要的轉換流有:解碼(InputStreamReader),編碼(OutputStreamWriter)。在使用的時候需要注意一點,首先需要知道目標文件自身的編碼集,這樣才能夠在對其操作時,使用與文件相對應的編碼解碼集進行處理,從而避免出現亂碼的情況。如果在對文件的編碼集不清楚的情況下就進行相關操作,那麼將會很容易產生亂碼。