メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。
現在の OracleBFile ストリームからバイト シーケンスを読み取り、読み取ったバイト数の分だけストリーム内の位置を進めます。
Overrides Public Function Read( _
ByVal buffer() As Byte, _ ByVal offset As Integer, _ ByVal count As Integer _) As Integer
[C#]
public override int Read(byte[] buffer,intoffset,intcount);
[C++]
public: int Read(unsigned charbuffer __gc[],intoffset,intcount);
[JScript]
public override function Read(
buffer : Byte[],offset : int,count : int) : int;
パラメータ
- buffer
バイト配列。このメソッドが戻るとき、指定したバイト配列の offset から (offset + count) までの値が、現在のソースから読み取られたバイトに置き換えられて含まれます。 - offset
現在のストリームから読み取ったデータの格納を開始する位置を示す buffer 内のバイト オフセット。インデックス番号は 0 から始まります。 - count
現在のストリームから読み取る最大バイト数。
戻り値
バッファに読み取られた合計バイト数。要求しただけのバイト数を読み取ることができなかった場合、この値は要求したバイト数より小さくなります。ファイルの末尾に到達した場合は、ゼロ (0) になることがあります。
例外
例外の種類 | 条件 |
---|---|
ArgumentException | offset と count の合計値が、バッファ長を超えています。 |
ArgumentNullException | buffer が null 参照 (Visual Basic の場合は Nothing) です。 |
ArgumentOutOfRangeException | offset または count が負の値です。 |
InvalidOperationException | BFILE に関連付けられている接続が閉じています。 |
IOException | I/O エラーが発生しました。 |
ObjectDisposedException | ストリームが閉じられたか破棄された後で、メソッドが呼び出されました。 |
解説
Read メソッドは、現在のストリームから最大で count で指定したバイト数だけ読み込み、読み込んだバイトを buffer 内の offset で始まる位置に格納します。ストリームの現在位置が、読み込んだバイト数だけ進みます。ただし、例外が発生した場合は、ストリーム内の現在位置はそのまま変わりません。 Read は、読み込んだバイト数を返します。現在の位置がストリームの末尾である場合だけ、0 の値が返されます。読み取るデータがない場合、 Read は、最低 1 バイトのデータを読み取ることができるまでブロックされます。 Read は、ファイルの末尾に到達した場合にだけ 0 を返します。ストリームの末尾に到達していない場合でも、 Read は、要求されたバイト数未満のデータを返すことができます。
Read メソッドまたは Seek メソッドを使用して、閉じている OracleBFile にアクセスしようとすると、自動的に OracleBFile ストリームが再度開かれます。
次の C# の例では、Oracle テーブルにおいてこの方法を用いることを想定しています。
(col1 number, col2 BFILE)
Read メソッドと Seek メソッドを使用して OracleBFile オブジェクトにアクセスする例を次に示します。
byte[] buffer = new byte[100];
OracleDataReader myReader = myCommand.ExecuteReader();
using (myReader) {
if (myReader.Read()) {
OracleBFile myBFile = myReader.GetOracleBFile(1);
using (myBFile) {
myBFile.Seek(0, SeekOrigin.Begin);
myBFile.Read(buffer, 0, 100);
}
}
}
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
.NET Framework セキュリティ:
- 直前の呼び出し元の完全信頼。このメンバは、部分的に信頼されているコードから使用することはできません。詳細の参照先 : 部分信頼コードからのライブラリの使用
参照
OracleBFile クラス | OracleBFile メンバ | System.Data.OracleClient 名前空間