OracleBFile.Read(Byte[], Int32, Int32) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
現在の 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
現在のストリームから読み取る最大バイト数。
戻り値
バッファーに読み取られた合計バイト数。 要求しただけのバイト数を読み取ることができなかった場合、この値は要求したバイト数より小さくなります。ファイルの末尾に到達した場合は、ゼロになることがあります。
例外
offset
と count
の合計が、バッファーの長さよりも大きいです。
buffer
が null 参照 (Visual Basic の場合は Nothing
) です。
offset
または count
が負の値です。
BFILE
に関連付けられている接続が閉じています。
I/O エラーが発生しました。
ストリームが閉じられたか破棄された後で、メソッドが呼び出されました。
注釈
メソッドはRead、現在のcount
ストリームから最大バイト数を読み取り、 でoffset
始まるにbuffer
格納します。 ストリーム内の現在の位置は、読み取られたバイト数だけ進みます。ただし、例外が発生した場合、ストリーム内の現在の位置は変更されません。
Read は読み取られたバイト数を返します。 位置が現在ストリームの末尾にある場合にのみ、戻り値は 0 です。
Read は、データが使用できない場合に、少なくとも 1 バイトのデータを読み取ることができるまでブロックします。
Read は、ファイルの末尾に達した場合にのみ 0 を返します。
Read は、ストリームの末尾に達していない場合でも、要求されたバイト数よりも少ないバイト数を返します。
メソッドまたは Seek メソッドを使用して閉じた OracleBFile にReadアクセスしようとすると、ストリームが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);
}
}
}
適用対象
.NET