語言

InputStream.Read 方法

定義

多載

名稱 Description
Read(Byte[], Int32, Int32)

從輸入串流讀取最多位 len 元組的資料到位元組陣列中。

Read()

從輸入串流讀取下一個位元組的資料。

Read(Byte[])

從輸入串流讀取一定數量的位元組,並將其儲存到緩衝陣列 b中。

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 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於