次の方法で共有


OracleBFile.Read メソッド

メモ : この名前空間、クラス、およびメンバは、.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 offsetcount の合計値が、バッファ長を超えています。
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 名前空間