read(byte[] b,int off,int len)的返回值
老師的while((bytes=in.read(buf,0,buf.length))!=-1)這里應該有點問題,這時候read()返回的應該是所讀的字節(jié)數(shù),是不是設置bytes++<=buf.length
老師的while((bytes=in.read(buf,0,buf.length))!=-1)這里應該有點問題,這時候read()返回的應該是所讀的字節(jié)數(shù),是不是設置bytes++<=buf.length
2016-12-16
舉報
2022-03-23
請問你知道老師用的是哪個版本的嗎要是這樣的話,在JS中控制樣式就違背了W3C標準的理念了,不利于樣式與行為的分離,不利于代碼維護
2017-01-28
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ù)做不就錯了^_^
2016-12-16
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)