為什么要讀到-1就結(jié)束,讀到別的不行么,不是很懂
為什么要讀到-1就結(jié)束,讀到別的不行么,不是很懂
while ((c = bis.read()) != -1) {
bos.write(c);
bos.flush();// 刷新緩沖區(qū)
為什么要讀到-1就結(jié)束,讀到別的不行么,不是很懂
while ((c = bis.read()) != -1) {
bos.write(c);
bos.flush();// 刷新緩沖區(qū)
2015-07-15
舉報(bào)
2017-12-24
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ì)你有幫助。
2015-12-01
書上寫的一個(gè)返回整型的方法就不能簡(jiǎn)單的通過(guò)返回-1表示錯(cuò)誤,因?yàn)?1很可能是一個(gè)完全合法的結(jié)果。
2015-10-01
不會(huì)的,你建議去看看這個(gè)方法的API,說(shuō)再多都不如看這個(gè)方法的源代碼來(lái)的有效
2015-08-24
方法定義是,當(dāng)文件沒(méi)有可讀取內(nèi)容時(shí) 返回-1,也就是文件已經(jīng)讀完后返回-1。
2015-07-22
方法定義就是這樣的,我們只能后接受。
2015-07-15
.read()這個(gè)方法是讀取的意思。如果有值就返回1 沒(méi)有值得話返回-1