言語

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[]

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

属性

注釈

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

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

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

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

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

入力ストリームからの読み取りで I/O エラーが発生した場合は、一部のバイトが読み取られた後で発生する可能性がありますが、すべてではありません。 その結果、入力ストリームがストリームの最後に存在せず、不整合な状態になる可能性があります。 I/O エラーが発生した場合は、ストリームをすぐに閉じることを強くお勧めします。

11 に追加されました。

Javaドキュメント。

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

適用対象

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 が返されます。

lenが 0 の場合、バイトは読み取られず、0が返されます。それ以外の場合は、最大len バイトを読み取ろうとします。

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

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

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

9 に追加されました。

Javaドキュメント。

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

適用対象