OracleBFile.Read(Byte[], Int32, Int32) メソッド

定義

現在の OracleBFile ストリームからバイト シーケンスを読み取り、読み取ったバイト数だけストリーム内の位置を進めます。

public:
 override int Read(cli::array <System::Byte> ^ buffer, int offset, int count);
public override int Read(byte[] buffer, int offset, int count);
override this.Read : byte[] * int * int -> int
Public Overrides Function Read (buffer As Byte(), offset As Integer, count As Integer) As Integer

パラメーター

buffer
Byte[]

バイトの配列。 このメソッドから制御が戻るときに、バッファーには指定されたバイト配列が格納され、 offset と (offset + count) の間の値が現在のソースから読み取られたバイトに置き換えられます。

offset
Int32

現在のストリームから読み取られたデータの格納を開始する buffer の 0 から始まるバイト オフセット。

count
Int32

現在のストリームから読み取られる最大バイト数。

返品

バッファーに読み込まれるバイトの合計数。 この値は、現在使用できないバイト数の場合は要求されたバイト数より少ない場合があります。ファイルの末尾に達した場合は 0 になります。

例外

offsetcountの合計がバッファー長を超えています。

buffer は null 参照です (Visual Basic では Nothing)。

offset または count が負の値です。

BFILEが関連付けられている接続が閉じられます。

I/O エラーが発生しました。

ストリームが閉じられたか破棄された後、メソッドが呼び出されました。

注釈

Read メソッドは、現在のストリームから最大count バイトを読み取り、bufferから始まるoffsetに格納します。 ストリーム内の現在の位置は、読み取られたバイト数だけ進みます。ただし、例外が発生した場合、ストリーム内の現在の位置は変更されません。 Read は、読み取られたバイト数を返します。 戻り値は、現在位置がストリームの末尾にある場合にのみ 0 です。 Read は、データが使用できない場合に、少なくとも 1 バイトのデータを読み取ることができるまでブロックします。 Read は、ファイルの末尾に達した場合にのみ 0 を返します。 Read は、ストリームの末尾に達していない場合でも、要求されたバイト数よりも少ないバイト数を返します。

OracleBFileまたはReadメソッドを使用して閉じたSeekにアクセスしようとすると、OracleBFile ストリームが自動的に再度開きます。

次の C# の例では、Oracle テーブルでこのスキーマを想定しています。

(col1 number, col2 BFILE)

この例では、 Read メソッドと Seek メソッドを使用して、 OracleBFile オブジェクトにアクセスする方法を示します。

byte[] buffer = new byte[100];
OracleDataReader dataReader = command.ExecuteReader();
using (dataReader) {
    if (dataReader.Read()) {
            OracleBFile BFile = dataReader.GetOracleBFile(1);
        using (BFile) {
            BFile.Seek(0, SeekOrigin.Begin);
            BFile.Read(buffer, 0, 100);
        }
    }
}

適用対象