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