程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> 編碼-JAVA語言中輸入輸出流問題

編碼-JAVA語言中輸入輸出流問題

編輯:編程解疑
JAVA語言中輸入輸出流問題

“在JAVA中的字符是Unicode編碼,是雙字節的。InputStream類,是用來處理字節的,並不適合處理字符文本”這句話該怎麼理解?這雙字節編碼、字節處理、字符文本又該怎麼理解?我是新手求調教下。

最佳回答:


你的一個字符串就是一個String,每個String裡的每個字都是一個char(字符),你可以通過String.charAt()函數獲取字符串中的char。這個char包含了所有的英文,中文,符號和其他各國語言。所以它的內部是用一個16位的整數來保存的,這就是文檔上說的UNICODE編碼。
我們如果只在程序內部操作字符串,那最多只要關心到char就足夠了。但是如果保存到文件中,就要把char轉換成byte(字節)。因為在文件中是以字節為單位存儲的。
而且由於現在char轉byte的轉換方式已經成型了很多編碼規范,比如GB-2312, UTF-8, UNICODE等等,因此要在char和byte之間做轉換的話,必須要指定轉換所使用的編碼規范,
一旦規范寫錯,轉換成的字符串就不是你想要的了。而且幾乎無法查錯。所以才有這麼一句話。
一般在java裡都會在InputStream類外面包一層文本格式轉換的流類,然後通過外邊那層類來操作流

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved