字節流是最基本的,全部的InputStream和OutputStream的子類都是,主要用在處理二進制數據,它是按字節來處理的
但實際中不少的數據是文本,又提出了字符流的概念,它是按虛擬機的encode來處理,也就是要進行字符集的轉化
這兩個之間經過 InputStreamReader,OutputStreamWriter來關聯,其實是經過byte[]和String來關聯
在實際開發中出現的漢字問題實際上都是在字符流和字節流之間轉化不統一而形成的
在從字節流轉化爲字符流時,實際上就是byte[]轉化爲String時,
public String(byte bytes[], String charsetName)
有一個關鍵的參數字符集編碼,一般咱們都省略了,那系統就用操做系統的lang
而在字符流轉化爲字節流時,其實是String轉化爲byte[]時,
byte[] String.getBytes(String charsetName)
也是同樣的道理
編碼