不懂,bytes = in.read(buf,0,buf.length))!=-1
(bytes = in.read(buf,0,buf.length))!=-1是什么意思?返回的字節(jié)個(gè)數(shù)為什么會(huì)等于-1???是0或者正數(shù)才對(duì)啊?不明白,先謝謝了!
(bytes = in.read(buf,0,buf.length))!=-1是什么意思?返回的字節(jié)個(gè)數(shù)為什么會(huì)等于-1???是0或者正數(shù)才對(duì)啊?不明白,先謝謝了!
2015-07-23
舉報(bào)
2015-07-24
if(bytes = in.read(buf,0,buf.length))!=-1
相當(dāng)于
if(in.read(buf,0,buf.length)!=-1){//但是卻不能這么寫
????bytes =?in.read(buf,0,buf.length);
}
可以研究一下怎么看jdk源碼
如果讀到了末尾會(huì)返回一個(gè)值“-1”,方法就是這么定義的。
2017-08-20
?in.read(buf,0,buf.length)這個(gè)函數(shù)會(huì)返回讀取到的字節(jié)個(gè)數(shù),給你舉例子你就明白了,比如你的buf數(shù)組的長(zhǎng)度是450,這個(gè)時(shí)候你讀取的文件的字節(jié)長(zhǎng)度是500,那么第一次執(zhí)行,我們只能先讀450個(gè)字節(jié),在讀取文件的時(shí)候,會(huì)有指針從開頭跟著走,我們讀取了450個(gè),那么指針就走到了450,bytes的值是450,此時(shí)還剩50個(gè)字節(jié),用while就可以再進(jìn)行一次讀取,從451開始讀起,一直到結(jié)束,bytes的值是50,然后第三次沒有了,讀不到東西了,bytes就是-1了,while循環(huán)結(jié)束,就是醬。
2015-09-28
bytes = in.read(buf,0,buf.length)) 返回的是讀取到的字節(jié)的個(gè)數(shù),個(gè)數(shù)。。怎么會(huì)等于-1
難道獲取不到字節(jié),這個(gè)in.read()就會(huì)返回-1?