Java中字節流和字符流的區別

字節流與字符流主要的區別是他們的的處理方式
字節流是最基本的,所有的InputStream和OutputStream的子類都是,主要用在處理二進制數據,它是按字節來處理的
但實際中很多的數據是文本,又提出了字符流的概念,它是按虛擬機的encode來處理,也就是要進行字符集的轉化
這兩個之間通過 InputStreamReader,OutputStreamWriter來關聯,實際上是通過byte[]和String來關聯
在實際開發中出現的漢字問題實際上都是在字符流和字節流之間轉化不統一而造成的

在從字節流轉化爲字符流時,實際上就是byte[]轉化爲String時,
public String(byte bytes[], String charsetName)
有一個關鍵的參數字符集編碼,通常我們都省略了,那系統就用操作系統的lang
而在字符流轉化爲字節流時,實際上是String轉化爲byte[]時,
byte[]    String.getBytes(String charsetName)
也是一樣的道理

至於java.io中還出現了許多其他的流,按主要是爲了提高性能和使用方便,
如BufferedInputStream,PipedInputStream等
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章