源碼如下:
public synchronized void write(int b) throws IOException {
if (count >= buf.length) {
flushBuffer();
}
buf[count++] = (byte)b;
}
為何寫字節(jié)要用int類型? int是四個字節(jié),byte是一個字節(jié),為何(byte)b?
3 回答

當(dāng)年話下
TA貢獻(xiàn)1890條經(jīng)驗 獲得超9個贊
根據(jù)這篇博文來看
1個字節(jié)占8位,既然實際返回的是byte類型的數(shù)據(jù),那么強(qiáng)制類型轉(zhuǎn)換int型截取低8位,對數(shù)據(jù)也不會造成影響。
這是因為在int強(qiáng)制轉(zhuǎn)換為byte型數(shù)據(jù)時,會產(chǎn)生一個-128~127的有符號字節(jié),而不是read方法返回的0~255的無符號字節(jié)。
個人不負(fù)責(zé)任猜測應(yīng)該是為了寫入有符號字節(jié)。
因為
System.out.println((byte) 128); // 輸出 -128
添加回答
舉報
0/150
提交
取消