請(qǐng)問(wèn)關(guān)于java IO的問(wèn)題 我有一些疑問(wèn)想不通int?bytes=0;
while((bytes=in.read(buf,0,buf.length))!=-1){
for(int?i=0;i<bytes;i++)
System.out.print(Integer.toHexString(buf[i]&0xff+"?"))}請(qǐng)問(wèn)關(guān)于這段簡(jiǎn)述代碼。當(dāng)執(zhí)行bytes=in.read(buf,0,buf.length這一步的時(shí)候,他是不是先把in中的全部讀到內(nèi)存中。這樣的話(huà)執(zhí)行完之后如果in中的字節(jié)讀完了,bytes就等于-1了。 直接不滿(mǎn)足 while循環(huán)了。 如何會(huì)執(zhí)行 for中??還是說(shuō)bytes=in.read(buf,0,buf.length是先讀一個(gè)字節(jié)到內(nèi)存 執(zhí)行一次for。執(zhí)行read()方法并不是一次性讀完?
3 回答

大大葉5529
TA貢獻(xiàn)10條經(jīng)驗(yàn) 獲得超1個(gè)贊
是這樣的,當(dāng)程序運(yùn)行時(shí),就會(huì)把所有的變量都裝到內(nèi)存之中,通過(guò)in這個(gè)對(duì)象去讀取buf在內(nèi)存中的地址所指向的數(shù)據(jù),從0讀到buf的length處,當(dāng)bytes每次讀取一段數(shù)據(jù)時(shí)就會(huì)執(zhí)行打印語(yǔ)句。
添加回答
舉報(bào)
0/150
提交
取消