您好,登錄后才能下訂單哦!
字節流
字節流(byte stream)不包含邊界數據的連續流,字節流是由字節組成的,字符流是由字符組成的. Java里字符由兩個字節組成.字節流是最基本的,所有的InputStream和OutputStream的子類都是,主要用在處理二進制數據,它是按字節來處理的但實際中很多的數據是文本,又提出了字符流的概念,它是按虛擬機的encode來處理,也就是要進行字符集的轉化。在從字節流轉化為字符流時,實際上就是byte[]轉化為String時,public String(byte bytes[], String charsetName)有一個關鍵的參數字符集編碼,通常我們都省略了,那系統就用操作系統默認的lang
字符流
字符流是由字符組成的,例如 FileReader、FileWriter、BufferedReader、BufferedWriter、InputStreamReader、OutputStreamWriter 等。
Java中的字符流處理的最基本的單元是Unicode碼元(大小2字節),它通常用來處理文本數據。所謂Unicode碼元,也就是一個Unicode代碼單元,范圍是0x0000~0xFFFF。
在以上范圍內的每個數字都與一個字符相對應,Java中的String類型默認就把字符以Unicode規則編碼而后存儲在內存中。然而與存儲在內存中不同,存儲在磁盤上的數據通常有著各種各樣的編碼方式。使用不同的編碼方式,相同的字符會有不同的二進制表示。
字符流與字節流的區別
經過以上的描述,我們可以知道字節流與字符流之間主要的區別體現在以下幾個方面:
1、字節流操作的基本單元為字節;字符流操作的基本單元為Unicode碼元。
2、字節流默認不使用緩沖區;字符流使用緩沖區。
3、字節流通常用于處理二進制數據,實際上它可以處理任意類型的數據,但它不支持直接寫入或讀取Unicode碼元;字符流通常處理文本數據,它支持寫入及讀取Unicode碼元。
以上就是java中的字符流和字節流的區別的詳細內容,更多請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。