次の方法で共有


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

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

戻り値

バッファーに読み取られた合計バイト数。 要求しただけのバイト数を読み取ることができなかった場合、この値は要求したバイト数より小さくなります。ファイルの末尾に到達した場合は、ゼロになることがあります。

例外

offsetcount の合計が、バッファーの長さよりも大きいです。

buffer が null 参照 (Visual Basic の場合は Nothing) です。

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

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

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

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

注釈

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

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

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

(col1 number, col2 BFILE)  

この例では、 メソッドと Seek メソッドをRead使用してオブジェクトにアクセスする方法を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);  
        }  
    }  
}  

適用対象