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

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

為什么要讀到-1就結(jié)束,讀到別的不行么,不是很懂

為什么要讀到-1就結(jié)束,讀到別的不行么,不是很懂

while ((c = bis.read()) != -1) {

bos.write(c);

bos.flush();// 刷新緩沖區(qū)


正在回答

6 回答

read

public abstract int read()
? ? ? ? ? ? ? ? ?throws IOException

從輸入流中讀取數(shù)據(jù)的下一個(gè)字節(jié)。返回 0 到 255 范圍內(nèi)的 int 字節(jié)值。如果因?yàn)橐呀?jīng)到達(dá)流末尾而沒(méi)有可用的字節(jié),則返回值 -1。在輸入數(shù)據(jù)可用、檢測(cè)到流末尾或者拋出異常前,此方法一直阻塞。

子類必須提供此方法的一個(gè)實(shí)現(xiàn)。


返回:

下一個(gè)數(shù)據(jù)字節(jié);如果到達(dá)流的末尾,則返回 -1。

拋出:

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

從API的理解來(lái)看,read是每次讀取一個(gè)byte,byte只有8位,范圍就是0-255,只不過(guò)read將他作為一個(gè)32位的int值返回出來(lái),正常情況時(shí)不可能返回負(fù)數(shù)的,所以返回一個(gè)負(fù)數(shù)肯定是特殊情況了。這是我的理解,希望對(duì)你有幫助。

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

書上寫的一個(gè)返回整型的方法就不能簡(jiǎn)單的通過(guò)返回-1表示錯(cuò)誤,因?yàn)?1很可能是一個(gè)完全合法的結(jié)果。

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

不會(huì)的,你建議去看看這個(gè)方法的API,說(shuō)再多都不如看這個(gè)方法的源代碼來(lái)的有效

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

方法定義是,當(dāng)文件沒(méi)有可讀取內(nèi)容時(shí) 返回-1,也就是文件已經(jīng)讀完后返回-1。

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

詹士

那有沒(méi)有可能那個(gè)文件里面剛好有個(gè)-1,然后把-1讀出來(lái)之后賦給c,然后發(fā)現(xiàn)與右邊的-1相等就提前結(jié)束程序了呢?
2015-10-01 回復(fù) 有任何疑惑可以回復(fù)我~

方法定義就是這樣的,我們只能后接受。

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

.read()這個(gè)方法是讀取的意思。如果有值就返回1 沒(méi)有值得話返回-1

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

詹士

這里應(yīng)該是有值就直接返回那個(gè)值,而不是返回1吧。 如果照你那樣說(shuō),下面的bos.write(c);豈不是每次都寫入1了?
2015-10-01 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

為什么要讀到-1就結(jié)束,讀到別的不行么,不是很懂

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

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

幫助反饋 APP下載

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

公眾號(hào)

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