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

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

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

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


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

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

? 是這樣的嗎?還是我理解錯了,希望我有把疑惑說清楚。。。

正在回答

4 回答

不知道。。。

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

charsandrew 提問者

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

厲害~~~

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

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

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

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

哈哈,這個問題還是我自己來解答吧。

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

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

舉報

0/150
提交
取消

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

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

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

幫助反饋 APP下載

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

公眾號

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