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

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

read(byte[] b,int off,int len)的返回值

老師的while((bytes=in.read(buf,0,buf.length))!=-1)這里應該有點問題,這時候read()返回的應該是所讀的字節(jié)數(shù),是不是設置bytes++<=buf.length

正在回答

3 回答

read返回的確實是字節(jié)數(shù),但是讀到文件尾時就返回-1。

所以如果文件沒有被讀完,則返回讀取長度而不是-1,while繼續(xù)執(zhí)行,循環(huán)利用buf。

如果文件被讀完,則返回-1,while循環(huán)結(jié)束。

-----------------------------------------------

如果按你說的bytes++<=buf.length,那讀到文件尾時返回-1也小于buf.length,那循環(huán)還繼續(xù)做不就錯了^_^

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

read

public int read(byte[]?b)
? ? ? ? throws IOException

從此輸入流中將最多 b.length 個字節(jié)的數(shù)據(jù)讀入一個 byte 數(shù)組中。在某些輸入可用之前,此方法將阻塞。


覆蓋:

類 InputStream 中的 read

參數(shù):

b - 存儲讀取數(shù)據(jù)的緩沖區(qū)。

返回:

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

拋出:

IOException - 如果發(fā)生 I/O 錯誤。

另請參見:

InputStream.read(byte[], int, int)


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

weibo_肖邦在對我微笑_0

發(fā)錯了,其實想發(fā)的是read public int read(byte[] b, int off, int len) throws IOException 這個方法 其實都沒關(guān)系,你看函數(shù)返回后面那一段,如果因為已經(jīng)到達文件末尾而沒有更多的數(shù)據(jù),則返回 -1。 就知道老師這樣寫是什么意思了
2016-12-16 回復 有任何疑惑可以回復我~
#2

weibo_肖邦在對我微笑_0 回復 weibo_肖邦在對我微笑_0

而且如果按照你的想法 bytes++<=buf.length 循環(huán)一直會運行到bytes等于byte[] buf[]定義時的長度。 這是我的理解,具體會不會運行到我沒試過。
2016-12-16 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

read(byte[] b,int off,int len)的返回值

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

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

幫助反饋 APP下載

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

公眾號

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