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

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

為什么write(buf, 0, b)會(huì)報(bào)錯(cuò),改成write(buf, 0, buf.length)就不會(huì)報(bào)錯(cuò)了

代碼:

FileInputStream fis = new FileInputStream(srcfile);
??FileOutputStream fos = new FileOutputStream(destfile,true);
??byte[] buf = new byte[20*1024];
??int b=0;
??//從fis中讀取數(shù)據(jù)存放到buf,從0位置開始,讀取最長buf.length個(gè)字節(jié)
??while((b = fis.read(buf, 0, buf.length))!=0)
??{
???//將buf的內(nèi)容寫入fos,從0位置開始,最多寫入b個(gè)字節(jié)
???fos.write(buf, 0, buf.length);????//write(buf,0,b)
???fos.flush();
??}

老師寫的是write(buf,0,b),但是我運(yùn)行以后是這樣

http://img1.sycdn.imooc.com//57832c2b00011b4a06270114.jpg

改成fos.write(buf, 0, buf.length);就可以了


正在回答

3 回答

b是你本次讀到的字節(jié)數(shù),其中b<=?buf.length。

讀滿的時(shí)候b=?buf.length,讀到最后一次的時(shí)候很可能b<?buf.length,這個(gè)時(shí)候buf里面一共有b(<buf.length)個(gè)字節(jié),你fos.write(buf, 0, buf.length)就數(shù)組越界了。

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

leowei

應(yīng)該是-1那的問題,讀的時(shí)候只要是buf.length 中的數(shù),就不會(huì)越界
2016-11-02 回復(fù) 有任何疑惑可以回復(fù)我~

謝謝!粗心寫錯(cuò)了

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

? while((b = fis.read(buf, 0, buf.length))!=0) ?應(yīng)該是? while((b = fis.read(buf, 0, buf.length))!=-1)吧 ?

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

舉報(bào)

0/150
提交
取消

為什么write(buf, 0, b)會(huì)報(bào)錯(cuò),改成write(buf, 0, buf.length)就不會(huì)報(bào)錯(cuò)了

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

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

幫助反饋 APP下載

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

公眾號

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