java里字節與字符的區別


當時學Java的時候沒搞懂字節和字符的區別,今天看文件輸入輸出流的時候覺得是時候徹底把這兩個概念弄懂。

  首先得知道byte的概念和作用:

  byte即字節的意思,是java中的基本數據類型,用來申明字節型的變量,一個字節包含8個位,所以,byte

類型的取值范圍是-128到127。

   通常在讀取非文本文件時(如圖片,聲音,可執行文件)需要用字節數組來保存文件的內容,在下載文件時,

也是用byte數組作臨時的緩沖器接收文件內容。所以說byte在文件操作時是必不可少的。不管是對文件寫入還是

讀取都要用到。

  在某些程序中(尤其是和硬件有關的程序)會將某些數據存儲到字節類型的變量中,比如00110010,其中每個

位都代表一個參數,然后以位運算的方式對參數進行取值和賦值操作。

  機器只知道字節,而字符卻是語義上的單位,它是有編碼的,一個字符可能編碼成1個2個甚至3個4個字節。這

跟字符集編碼有關系,英文字母和數字是單字節,但漢字這些自然語言中的字符是多字節的。一個字節只能表示

255個字符,不可能用於全球那么多種自然語言的處理,因此肯定需要多字節的存儲方式。

  那么在文件的輸入輸出中,InputStream、OutputStream它們是處理字節流的,就是說假設所有東西都是二進

制的字節;而 Reader, Writer 則是字符流,它涉及到字符集的問題;按照ANSI編碼標准,標點符號、數字、大小

寫字母都占一個字節,漢字占2個字節。按照UNICODE標准所有字符都占2個字節。

  以上就是我對字節與字符的理解。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM