天天看點

Java位元組流和字元流的差別

1.位元組流是使用InputStream、OutputStream操作的,字元流是使用Reader、writer操作(以上提到的都是抽象内,日常開發用的都是他們的子類)。

2.位元組流操作機關是位元組,直接處理二進制(不支援UniCode碼元)直接操作檔案,字元流不會直接操作檔案,會有一個緩存(一塊記憶體空間),資料先加載到緩存(字元其實是在緩存區中形成的),程式再從緩存中讀取,支援Unicode。

Java位元組流和字元流的差別

3.日常開發比較推薦位元組流(中文處理使用字元流會比較友善),所有的檔案在硬碟或在傳輸時都是以位元組的方式進行的,包括圖檔等都是按位元組的方式存儲的,而字元是隻有在記憶體中才會形成,是以在開發中,位元組流使用較為廣泛。但是日常操作的很多檔案都是文本是以需要在字元流和位元組流之間轉換,InputStreamReader,OutputStreamWriter來操作。