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

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

while循環(huán)是不是存在問題的

最后這個while循環(huán)不會一直在那從0開始read循環(huán)嗎 ?因為bytes不等于-1啊 是不是有問題

正在回答

4 回答

read(buf,0,b)是把讀到的數(shù)據(jù)存到buf這個數(shù)組里面去,從0到b!返回值是讀的字節(jié)數(shù)!

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

read()返回的是放入數(shù)組buf的大小,前面定義buf大小為8*1024,單位字節(jié),假設(shè)一個文件大小為13192字節(jié),讀三次才能讀完,第一次讀8192字節(jié),bytes=8192,然后打印出來,第二次,in.read(buf,0,buf.length)=5000,然后前面byte數(shù)組中前5000個字節(jié)被覆蓋,然后for循環(huán)把這5000個字節(jié)打印出來,第三次沒東西讀了,返回-1,結(jié)束循環(huán)。而這時候buf的大小還是8192,第二次只是覆蓋了前面的,AIP也解釋的很不清楚:這些字節(jié)將存儲在 b[off] 到 b[off+k-1] 的元素中,不影響 b[off+k] 到 b[off+len-1] 的元素

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

TiGer196

bytes第一次 =8192,第二次 =5000,第三次 =-1
2017-02-08 回復(fù) 有任何疑惑可以回復(fù)我~
#2

java_jun 提問者 回復(fù) TiGer196

嗯吶 謝謝了哈 原來是覆蓋了啊
2017-02-08 回復(fù) 有任何疑惑可以回復(fù)我~
#3

KingAmo 回復(fù) TiGer196

第二次就應(yīng)該讀到文件結(jié)尾了啊,為什么還要讀第三次?我以為第二次bytes就會是-1。。能解釋一下嗎,謝謝
2017-06-21 回復(fù) 有任何疑惑可以回復(fù)我~
#4

TiGer196 回復(fù) KingAmo

1b都沒有了才是-1,第二次還有數(shù)據(jù)啊
2017-06-21 回復(fù) 有任何疑惑可以回復(fù)我~
查看1條回復(fù)

。。但是while里面每次都是寫的從0開始的

while((bytes = in.read(buf,0,buf.length)) != -1)

還有個問題 一次就讀取滿了buf這個數(shù)組,下次再讀進(jìn)去不是放不進(jìn)去了嗎 ?大神講解下

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

while沒錯 ?對象.read(byte[] b, int off, int len);//方法是這樣的:從對象中讀取len個字節(jié)放進(jìn)b中,每次從b中off位置開始放,.但是老師對于這塊有一個問題沒講清,我的理解是:文件指針從0開始讀取,每次讀取,指針后移一次,讀取完一組字節(jié),此時指針已經(jīng)移動到了下一個未讀取的位置,下次while循環(huán)時,從指針的位置繼續(xù)讀取,往放入b中 ?從b的off位置又開始放,知道放滿,每次循環(huán)。當(dāng)read方法讀取到結(jié)尾時,返回值為-1,bytes接受該返回值,作為循環(huán)結(jié)束條件。(可能有錯誤的地方,同求大神指明)

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

java_jun 提問者

。。但是while里面每次都是寫的從0開始的 while((bytes = in.read(buf,0,buf.length)) != -1) 還有個問題 一次就讀取滿了buf這個數(shù)組,下次再讀進(jìn)去不是放不進(jìn)去了嗎 大神講解下
2017-02-06 回復(fù) 有任何疑惑可以回復(fù)我~

舉報

0/150
提交
取消

while循環(huán)是不是存在問題的

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

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

幫助反饋 APP下載

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

公眾號

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