字節與字符的轉化接口
另外數據持久化或網絡傳輸都是以字節進行的,所以必須要有字符到字節或字節到字符的轉化。字符到字節需要轉化,其中讀的轉化過程如下圖所示:
圖 5. 字符解碼相關類結構
InputStreamReader 類是字節到字符的轉化橋梁,InputStream 到 Reader 的過程要指定編碼字符集,否則將采用操作系統默認字符集,很可能會出現亂碼問題。StreamDecoder 正是完成字節到字符的解碼的實現類。也就是當你用如下方式讀取一個文件時:
清單 1.讀取文件
try { StringBuffer str = new StringBuffer(); char[] buf = new char[1024]; FileReader f = new FileReader("file"); while(f.read(buf)>0){ str.append(buf); } str.toString(); } catch (IOException e) {}
FileReader 類就是按照上面的工作方式讀取文件的,FileReader 是繼承了 InputStreamReader 類,實際上是讀取文件流,然后通過 StreamDecoder 解碼成 char,只不過這里的解碼字符集是默認字符集。
寫入也是類似的過程如下圖所示:
圖 6. 字符編碼相關類結構
通過 OutputStreamWriter 類完成,字符到字節的編碼過程,由 StreamEncoder 完成編碼過程。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
