第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

read返回值問題

...

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

int j = 1;

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

...

正在回答

2 回答

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

0 回復 有任何疑惑可以回復我~
#1

you_nice 提問者

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

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

而且還可以讀取出內容來。

謝謝你!

0 回復 有任何疑惑可以回復我~
#1

you_nice 提問者

你說的是這一段么 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 回復 有任何疑惑可以回復我~
#2

鮮衣 回復 you_nice 提問者

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

舉報

0/150
提交
取消

read返回值問題

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號