read(byte[] b,int off,int len)的返回值
老師的while((bytes=in.read(buf,0,buf.length))!=-1)這里應(yīng)該有點(diǎn)問(wèn)題,這時(shí)候read()返回的應(yīng)該是所讀的字節(jié)數(shù),是不是設(shè)置bytes++<=buf.length
老師的while((bytes=in.read(buf,0,buf.length))!=-1)這里應(yīng)該有點(diǎn)問(wèn)題,這時(shí)候read()返回的應(yīng)該是所讀的字節(jié)數(shù),是不是設(shè)置bytes++<=buf.length
2016-12-16
舉報(bào)
2022-03-23
請(qǐng)問(wèn)你知道老師用的是哪個(gè)版本的嗎要是這樣的話,在JS中控制樣式就違背了W3C標(biāo)準(zhǔn)的理念了,不利于樣式與行為的分離,不利于代碼維護(hù)
2017-01-28
read返回的確實(shí)是字節(jié)數(shù),但是讀到文件尾時(shí)就返回-1。
所以如果文件沒(méi)有被讀完,則返回讀取長(zhǎng)度而不是-1,while繼續(xù)執(zhí)行,循環(huán)利用buf。
如果文件被讀完,則返回-1,while循環(huán)結(jié)束。
-----------------------------------------------
如果按你說(shuō)的bytes++<=buf.length,那讀到文件尾時(shí)返回-1也小于buf.length,那循環(huán)還繼續(xù)做不就錯(cuò)了^_^
2016-12-16
read
public int read(byte[]?b)
? ? ? ? throws IOException
從此輸入流中將最多 b.length 個(gè)字節(jié)的數(shù)據(jù)讀入一個(gè) byte 數(shù)組中。在某些輸入可用之前,此方法將阻塞。
覆蓋:
類 InputStream 中的 read
參數(shù):
b - 存儲(chǔ)讀取數(shù)據(jù)的緩沖區(qū)。
返回:
讀入緩沖區(qū)的字節(jié)總數(shù),如果因?yàn)橐呀?jīng)到達(dá)文件末尾而沒(méi)有更多的數(shù)據(jù),則返回 -1。
拋出:
IOException - 如果發(fā)生 I/O 錯(cuò)誤。
另請(qǐng)參見(jiàn):
InputStream.read(byte[], int, int)