public int read(byte[] b, int off, int len) throws IOException
- 将輸入流中最多
個資料位元組讀入位元組數組。嘗試讀取多達len
len
位元組,但可能讀取較少數量。以整數形式傳回實際讀取的位元組數。
在輸入資料可用、檢測到流的末尾或者抛出異常前,此方法一直阻塞。
如果
為b
,則抛出null
NullPointerException
。
如果
為負,或off
為負,或len
大于數組off+len
的長度,則抛出b
IndexOutOfBoundsException
。
如果
為 0,則沒有位元組可讀且傳回 ;否則,要嘗試讀取至少一個位元組。如果因為流位于檔案末尾而沒有可用的位元組,則傳回值len
;否則,至少可以讀取一個位元組并将其存儲在-1
b
中。
将讀取的第一個位元組存儲在元素
中,下一個存儲在b[off]
中,依次類推。讀取的位元組數最多等于b[off+1]
。讓 k 為實際讀取的位元組數;這些位元組将存儲在元素len
至b[off]
kb[off+
之間,其餘元素-1]
kb[off+
至]
b[off+len-1]
不受影響。
在任何情況下,元素
至b[0]
和元素b[off]
至b[off+len]
b[b.length-1]
都不會受到影響。
如果不是因為流位于檔案末尾而無法讀取第一個位元組,則抛出
。特别是,如果輸入流已關閉,則抛出IOException
IOException
。
類
的InputStream
read(b,
off,
方法隻重複調用方法len)
。如果第一個這樣的調用導緻read()
,則從對IOException
read(b,
off,
方法的調用中傳回該異常。如果對len)
的任何後續調用導緻read()
,則該異常會被捕獲并将發生異常時的位置視為檔案的末尾;到達該點時讀取的位元組存儲在IOException
中并傳回發生異常之前讀取的位元組數。建議讓子類提供此方法的更有效的實作。b
-
- 參數:
-
- 讀入資料的緩沖區。b
-
- 在其處寫入資料的數組off
的初始偏移量。b
-
- 要讀取的最大位元組數。len
傳回: - 讀入緩沖區的總位元組數,如果由于已到達流末尾而不再有資料,則傳回
。-1
抛出: -
- 如果發生 I/O 錯誤。IOException
-
- 如果NullPointerException
為b
。null
-