最近中文字幕高清中文字幕无,亚洲欧美高清一区二区三区,一本色道无码道dvd在线观看 ,一个人看的www免费高清中文字幕

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

read返回值問(wèn)題

...

int bytes = in.read(buf, 0, buf.length);?

int j = 1;

for(int i = 0; i < bytes; i++){ ?//文件字節(jié)數(shù)小于buf容量應(yīng)該返回-1,那為什么循環(huán)還可以執(zhí)行下去啊啊啊啊啊啊啊啊啊?

...

正在回答

2 回答

這個(gè)方法如果讀到文件末尾才返回-1呢,否則應(yīng)該返回的是讀取的字節(jié)數(shù)。

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

you_nice 提問(wèn)者

對(duì)的!謝謝解答! 我本來(lái)想如果buf.length大于文件大小的話,那么int bytes = in.read(buf, 0, buf,length)讀到文件末尾了,byte不是應(yīng)該等于-1么,i == 0 > bytes == -1, 那for循環(huán)應(yīng)該就不執(zhí)行了,可是結(jié)果for循環(huán)還是執(zhí)行了,而且輸出了buf.length個(gè)字節(jié)。 然后看看源碼就懂了,原來(lái)是第一次read()的時(shí)候讀到了文件末尾才返回 -1,后面的read()如果讀到了文件末尾的話就還是返回讀到的字節(jié)數(shù)!
2015-07-27 回復(fù) 有任何疑惑可以回復(fù)我~

請(qǐng)問(wèn)視頻中,定義了int bytes=0;為什么后面還用if(int i=0;i<bytes;i++){}

而且還可以讀取出內(nèi)容來(lái)。

謝謝你!

0 回復(fù) 有任何疑惑可以回復(fù)我~
#1

you_nice 提問(wèn)者

你說(shuō)的是這一段么 int bytes = 0; while((bytes = in.read(buf, 0, buf.length)) != -1){ ?for(int i = 0; i < bytes; i++){ ?} } 中間有一行bytes = in.read(buf, 0, buf.length),bytes的值改變了,變成讀到的字節(jié)數(shù), 所以for循環(huán)執(zhí)行了
2015-07-30 回復(fù) 有任何疑惑可以回復(fù)我~
#2

鮮衣 回復(fù) you_nice 提問(wèn)者

哈哈。看漏了,謝謝你!
2015-07-30 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

read返回值問(wèn)題

我要回答 關(guān)注問(wèn)題
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)