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

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

老師這里創(chuàng)建字節(jié)數(shù)組循環(huán)讀取大文件是不是有bug呢?

http://img1.sycdn.imooc.com//578d838c0001c01212800720.jpg


我查了下api中這里read的返回值為:讀入緩沖區(qū)的字節(jié)總數(shù),如果因?yàn)橐呀?jīng)到達(dá)文件末尾而沒有更多的數(shù)據(jù),則返回 -1。

那么如果我有一個(gè)數(shù)組一次性讀不完的文件,比如需要兩次讀完,那么第一次讀完后bytes返回值為1024,然后再while()循環(huán)里面打印輸出。第二次讀完了,并且返回了-1,此時(shí)雖然文件讀入了數(shù)組,但是bytes=-1,不滿足循環(huán)條件,循環(huán)里面就沒執(zhí)行,就沒有打印輸出啊!

? 是這樣的嗎?還是我理解錯(cuò)了,希望我有把疑惑說(shuō)清楚。。。

正在回答

4 回答

不知道。。。

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

charsandrew 提問者

我弄明白了,具體看我在樓下的回復(fù)。。。
2016-07-19 回復(fù) 有任何疑惑可以回復(fù)我~

厲害~~~

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

然后我寫代碼去試驗(yàn)了一下,結(jié)果是全部都能輸出到控制臺(tái)。然后我就去看read()的源代碼了,發(fā)現(xiàn)api中的解釋有點(diǎn)誤導(dǎo)人。實(shí)際情況是,在讀第二次的476個(gè)字節(jié)時(shí),如果讀到文件結(jié)束,下一個(gè)字節(jié)為空,會(huì)先返回476,然后再次讀取,這次直接返回-1。

看下read()的源代碼就很清楚了,源碼其實(shí)寫的很簡(jiǎn)單。

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

哈哈,這個(gè)問題還是我自己來(lái)解答吧。

我之前的疑問是:比如我要讀取一個(gè)1500字節(jié)的文件,并把它輸出到控制臺(tái),我定義一個(gè)1024字節(jié)數(shù)組來(lái)緩存讀取,第一次讀1024個(gè)字節(jié),返回的是1024;然后將1024字節(jié)輸出到控制臺(tái)。然后循環(huán)讀取,再讀剩下的476個(gè)字節(jié),因?yàn)樽x完了,返回的是-1,雖然將476個(gè)字節(jié)讀進(jìn)了數(shù)組,但不滿足while的執(zhí)行條件,所以剩下的476個(gè)字節(jié)是不會(huì)輸出到控制臺(tái)的。

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

舉報(bào)

0/150
提交
取消

老師這里創(chuàng)建字節(jié)數(shù)組循環(huán)讀取大文件是不是有bug呢?

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

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

幫助反饋 APP下載

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

公眾號(hào)

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