2013-01-31 77 views

回答

6

的註釋說明它非常清楚:

// Notice that although a byte is read, an int 
// with value between 0 and 255 is returned. 
// Then this is converted to an ISO Latin-1 char 
// in the same range before being printed. 

因此,基本上,這假設到來的字節代表了ISO-8859-1的字符。

如果您使用不同編碼的控制檯,或者在 ISO-8859-1中提供不是的字符,最終會出現問題。

基本上這是不是不錯的代碼。

+0

謝謝,Jon – Jin

1

Java將字符存儲爲2個字節,但對於普通的ASCII字符,實際數據只能放入一個字節。所以只要你可以假設正在讀取的文件有ASCII碼,那麼就可以正常工作,因爲字符的實際數值只能放在一個字節中。

+0

謝謝,Herms。我明白正常的ASCII字符可以放入一個字節。但是它們仍然會以兩個字節存儲嗎? – Jin

+0

當讀入java時,該值將以2個字節存儲,因爲char對象將有2個字節分配給它。但是,只有該字節的第一個字節將不爲零,因爲該值只會佔用很多位。 – Herms

相關問題