InputStream.ReadNBytes メソッド

定義

オーバーロード

ReadNBytes(Int32)

入力ストリームから、指定したバイト数まで読み取ります。

ReadNBytes(Byte[], Int32, Int32)

入力ストリームから指定されたバイト配列に要求されたバイト数を読み取ります。

ReadNBytes(Int32)

入力ストリームから、指定したバイト数まで読み取ります。

[Android.Runtime.Register("readNBytes", "(I)[B", "GetReadNBytes_IHandler", ApiSince=33)]
public virtual byte[]? ReadNBytes (int len);
[<Android.Runtime.Register("readNBytes", "(I)[B", "GetReadNBytes_IHandler", ApiSince=33)>]
abstract member ReadNBytes : int -> byte[]
override this.ReadNBytes : int -> byte[]

パラメーター

len
Int32

読み取る最大バイト数

戻り値

Byte[]

この入力ストリームから読み取られたバイトを含むバイト配列

属性

注釈

入力ストリームから、指定したバイト数まで読み取ります。 このメソッドは、要求されたバイト数が読み取られるか、ストリームの終わりが検出されるか、例外がスローされるまでブロックします。 このメソッドは、入力ストリームを閉じません。

返される配列の長さは、ストリームから読み取られたバイト数と等しくなります。 が 0 の場合 len 、バイトは読み取られず、空のバイト配列が返されます。 それ以外の場合は、最大 len バイトがストリームから読み取られます。 ストリームの末尾が見つかった場合、読み取ることができるバイト数より len 少ない。

このストリームがストリームの末尾に達すると、このメソッドをさらに呼び出すと、空のバイト配列が返されます。

このメソッドは、指定したバイト数をバイト配列に読み込むのに便利な単純なケースを対象としています。 このメソッドによって割り当てられるメモリの合計量は、 で len囲まれたストリームから読み取られたバイト数に比例します。 したがって、十分なメモリが使用可能な場合、メソッドは非常に大きな値で len 安全に呼び出される可能性があります。

入力ストリームが 非同期的に閉じている場合、または読み取り中にスレッドが中断された場合の動作は、高度な入力ストリーム固有であるため、指定されていません。

入力ストリームからの読み取りで I/O エラーが発生した場合は、一部のバイトが読み取られた後 (すべてではない) 場合があります。 そのため、入力ストリームはストリームの末尾になく、不整合な状態になる可能性があります。 I/O エラーが発生した場合は、ストリームを速やかに閉じることを強くお勧めします。

11 に追加されました。

の Java ドキュメント java.io.InputStream.readNBytes(int)

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象

ReadNBytes(Byte[], Int32, Int32)

入力ストリームから指定されたバイト配列に要求されたバイト数を読み取ります。

[Android.Runtime.Register("readNBytes", "([BII)I", "GetReadNBytes_arrayBIIHandler", ApiSince=33)]
public virtual int ReadNBytes (byte[]? b, int off, int len);
[<Android.Runtime.Register("readNBytes", "([BII)I", "GetReadNBytes_arrayBIIHandler", ApiSince=33)>]
abstract member ReadNBytes : byte[] * int * int -> int
override this.ReadNBytes : byte[] * int * int -> int

パラメーター

b
Byte[]

データの読み取り先のバイト配列

off
Int32

データが書き込まれる開始オフセットb

len
Int32

読み取る最大バイト数

戻り値

バッファーに読み込まれる実際のバイト数

属性

注釈

入力ストリームから指定されたバイト配列に要求されたバイト数を読み取ります。 このメソッドは、入力データのバイト数が読み取られるか、ストリームの終わりが検出されるか、例外がスローされるまで len ブロックします。 実際に読み取られたバイト数 (場合によっては 0) が返されます。 このメソッドは、入力ストリームを閉じません。

バイトが読み取られる前にストリームの終了に len 達した場合は、読み取られた実際のバイト数が返されます。 このストリームがストリームの末尾に達すると、このメソッドをさらに呼び出すと 0 が返されます。

が 0 の場合、バイトは読み取0られず、返されます。それ以外の場合lenは、最大バイト数のlen読み取りが試行されます。

最初のバイト読み取りは 要素 b[off]に格納され、次のバイトは に b[off+1]格納されます。 読み取られたバイト数は、最大で と len同じです。 k を実際に読み取ったバイト数にします。これらのバイトは k を通じて-1]b[off+要素b[off]に格納され、要素 b[off+k] は影響をb[off+len-1]受けません。

入力ストリームが 非同期的に閉じている場合、または読み取り中にスレッドが中断された場合の動作は、高度な入力ストリーム固有であるため、指定されていません。

入力ストリームからの読み取りで I/O エラーが発生した場合は、入力ストリームからのデータを使用して のバイト数 b が更新された後に発生する可能性があります(すべてではありません)。 その結果、入力ストリームと b が不整合な状態になる可能性があります。 I/O エラーが発生した場合は、ストリームを速やかに閉じることを強くお勧めします。

9 に追加されました。

の Java ドキュメント java.io.InputStream.readNBytes(byte[], int, int)

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象