InputStream.Read 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| Read(Byte[], Int32, Int32) |
從輸入串流讀取最多位 |
| Read() |
從輸入串流讀取下一個位元組的資料。 |
| Read(Byte[]) |
從輸入串流讀取一定數量的位元組,並將其儲存到緩衝陣列 |
Read(Byte[], Int32, Int32)
從輸入串流讀取最多位 len 元組的資料到位元組陣列中。
[Android.Runtime.Register("read", "([BII)I", "GetRead_arrayBIIHandler")]
public virtual int Read(byte[]? b, int off, int len);
[<Android.Runtime.Register("read", "([BII)I", "GetRead_arrayBIIHandler")>]
abstract member Read : byte[] * int * int -> int
override this.Read : byte[] * int * int -> int
參數
- b
- Byte[]
資料被讀取到的緩衝區。
- off
- Int32
資料寫入時陣列 b 的起始偏移量。
- len
- Int32
最大可讀取位元組數。
傳回
讀取到緩衝區的總位元組數,或 -1 是當資料已到達串流末端時,資料已無餘量。
- 屬性
例外狀況
如果 byteOffset buffer.length。
如果串流關閉或發生另一次IOException。
備註
從輸入串流讀取最多位 len 元組的資料到位元組陣列中。 嘗試讀取最多可達 len 位元組,但可讀取的數量較少。 實際讀取的位元組數以整數形式回傳。
此方法會阻塞直到輸入資料可用、檔案結束或拋出例外為止。
若 len 為零,則不會讀取位元組並 0 回傳;否則嘗試讀取至少一個位元組。 若串流位於檔案末尾,無法使用位元組,則返回該值 -1 ;否則,至少會讀取一個位元組並儲存在 b。
第一個位元組讀取會儲存在元素 b[off]中,下一個位元組則儲存在 b[off+1]元素中,依此類推。 讀取 len的位元組數最多等於 。 設 k 為實際讀取的位元組數;這些位元組會以元素儲存在 b[off]b[off+ 以內的元素-1]中,而 b[off+ 以內]的元素b[off+len-1]則不受影響。
在每種情況下,b[0]元素通過b[off-1]b[off+len]和元素b[b.length-1]都不受影響。
read(b, off, len)類別的方法InputStream只是反覆呼叫該方法read()。 如果第一次呼叫結果為 IOException,該例外會從呼叫中回傳給方法read(b,off,len)。 若後續呼叫 read() 產生 , IOException則該例外會被捕捉並視為檔案結束;到該點為止讀取的位元組會儲存在 , b 並回傳例外發生前讀取的位元組數。 此方法的預設實作會阻塞,直到讀取所需輸入資料 len 、偵測到檔案結束或拋出例外為止。 鼓勵子類別以提供更有效率的實作。
Java 文件 java.io.InputStream.read(byte[], int, int)。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
適用於
Read()
從輸入串流讀取下一個位元組的資料。
[Android.Runtime.Register("read", "()I", "GetReadHandler")]
public abstract int Read();
[<Android.Runtime.Register("read", "()I", "GetReadHandler")>]
abstract member Read : unit -> int
傳回
下一個資料位元組,或 -1 當串流的終點被到達時。
- 屬性
例外狀況
如果串流關閉或發生另一次IOException。
備註
從輸入串流讀取下一個位元組的資料。 值位元組會以 在 至 int的範圍內0回傳255。 若因串流結束而無位元組可用,則回傳該值 -1 。 此方法會阻塞直到輸入資料可用、串流結束或拋出異常。
必須有一個子類別提供此方法的實作。
Java 文件 java.io.InputStream.read()。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
適用於
Read(Byte[])
從輸入串流讀取一定數量的位元組,並將其儲存到緩衝陣列 b中。
[Android.Runtime.Register("read", "([B)I", "GetRead_arrayBHandler")]
public virtual int Read(byte[]? b);
[<Android.Runtime.Register("read", "([B)I", "GetRead_arrayBHandler")>]
abstract member Read : byte[] -> int
override this.Read : byte[] -> int
參數
- b
- Byte[]
資料被讀取到的緩衝區。
傳回
讀取到緩衝區的總位元組數,或 -1 是當資料已到達串流末端時,資料已無餘量。
- 屬性
例外狀況
備註
從輸入串流讀取一定數量的位元組,並將其儲存到緩衝陣列 b中。 實際讀取的位元組數以整數形式回傳。 此方法會阻塞直到輸入資料可用、檔案結束或拋出例外為止。
若 的 b 長度為零,則不會讀取位元組並 0 回傳;否則嘗試讀取至少一個位元組。 如果沒有位元組,因為串流位於檔案末尾,則會回傳該值 -1 ;否則,至少會讀取一個位元組並儲存在 b。
第一個位元組讀取會儲存在元素 b[0]中,下一個位元組則儲存在 b[1]元素中,依此類推。 讀取的位元組數最多等於 的 b長度。 設 k 為實際讀取的位元組數;這些位元組會以元素儲存在 b[0]b[ 以內的元素-1]中,而 b[ 以內]的元素b[b.length-1]則不受影響。
read(b)類別InputStream的方法具有相同的效果:
{@code read(b, 0, b.length) }
Java 文件 java.io.InputStream.read(byte[])。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。