java中byte的取值范圍 FileInputStream的read()方法一次讀取一個(gè)字節(jié)并返回?
FileInputStream的read()方法一次讀取一個(gè)字節(jié)并返回?從輸入流讀取下一個(gè)字節(jié)的數(shù)據(jù)。返回0到255范圍內(nèi)的int字節(jié)值。如果由于到達(dá)流的結(jié)尾而沒(méi)有字節(jié)可用,則返回值為-1。我們需要使
FileInputStream的read()方法一次讀取一個(gè)字節(jié)并返回?
從輸入流讀取下一個(gè)字節(jié)的數(shù)據(jù)。返回0到255范圍內(nèi)的int字節(jié)值。如果由于到達(dá)流的結(jié)尾而沒(méi)有字節(jié)可用,則返回值為-1。我們需要使用一個(gè)不能出現(xiàn)在數(shù)據(jù)中的值來(lái)表示流的結(jié)尾。在Java中,我們使用-1表示結(jié)束,因?yàn)?1不會(huì)出現(xiàn)在數(shù)據(jù)中。如果我們返回byte,就不能表示流的結(jié)尾。byte的值范圍是從-128到127,這個(gè)范圍內(nèi)的所有數(shù)據(jù),read()方法需要返回一個(gè)特殊的值來(lái)表示流的結(jié)束。流中的數(shù)據(jù)不能重復(fù)此值。read()方法在內(nèi)部將所有讀取字節(jié)的高位轉(zhuǎn)換為int。這樣,所有數(shù)據(jù)都將是正數(shù)。這時(shí)可以用-1來(lái)表示流的結(jié)尾,而更改后的數(shù)據(jù)只需要強(qiáng)轉(zhuǎn)換回byte,就可以得到原始數(shù)據(jù)。也就是說(shuō),在Java中,您將單字節(jié)數(shù)據(jù)與字節(jié)數(shù)據(jù)混淆。