????????FileInputStream?fileInputStream?=?new?FileInputStream("test_dir/test_file.txt");
byte[]?buffer?=?new?byte[1024];
fileInputStream.read(buffer);
for?(byte?b?:?buffer)?{
System.out.println(b);
}
fileInputStream.close();????????FileInputStream?fileInputStream?=?new?FileInputStream("test_dir/test_file.txt");
????int?x;
while((x=fileInputStream.read())!=?-1)
System.out.println(x);
fileInputStream.close();上面2段代碼輸出的數(shù)字為何不同?(忽略byte數(shù)組多余的零)
2 回答
已采納

onemoo
TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊
我看到你還問了個(gè)相關(guān)的問題。那么這個(gè)問題也是同理:
因?yàn)榈谝欢纬绦蛑?buffer 中的元素是 byte 類型,所以數(shù)組中的數(shù)值就被當(dāng)作 byte 類型被打印出來,也就是取值范圍 -128 到 127。
而第二段程序中是按照 int 來表示每個(gè)字節(jié)的,所以打印出的就都是不超過 255 的正數(shù)。
添加回答
舉報(bào)
0/150
提交
取消