OracleBFile.Read(Byte[], Int32, Int32) Methode

Definition

Liest eine Abfolge von Bytes aus dem aktuellen OracleBFile Datenstrom und wechselt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes.

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

Parameter

buffer
Byte[]

Ein Bytearray. Wenn diese Methode zurückgegeben wird, enthält der Puffer das angegebene Bytearray, wobei die Werte zwischen offset und (offset + count) durch die aus der aktuellen Quelle gelesenen Bytes ersetzt werden.

offset
Int32

Der nullbasierte Byte-Offset, in buffer dem die Daten gespeichert werden sollen, die aus dem aktuellen Datenstrom gelesen werden.

count
Int32

Die maximale Anzahl von Bytes, die aus dem aktuellen Datenstrom gelesen werden sollen.

Gibt zurück

Die Gesamtanzahl der in den Puffer gelesenen Bytes. Dies kann kleiner als die Anzahl der angeforderten Bytes sein, wenn viele Bytes derzeit nicht verfügbar sind, oder null, wenn das Ende der Datei erreicht wurde.

Ausnahmen

Die Summe und offsetcount ist größer als die Pufferlänge.

buffer ist ein Nullverweis (Nothing in Visual Basic).

offset oder count ist negativ.

Die Verbindung, der ein BFILE zugeordnetes Element zugeordnet ist, wird geschlossen.

Ein E/A-Fehler ist aufgetreten.

Methoden wurden aufgerufen, nachdem der Datenstrom geschlossen oder verworfen wurde.

Hinweise

Die Read Methode liest maximal count Bytes aus dem aktuellen Datenstrom und speichert sie beginnend buffer bei offset. Die aktuelle Position innerhalb des Datenstroms wird um die Anzahl der gelesenen Bytes erweitert; Wenn jedoch eine Ausnahme auftritt, bleibt die aktuelle Position innerhalb des Datenstroms unverändert. Read gibt die Anzahl der gelesenen Bytes zurück. Der Rückgabewert ist nur null, wenn sich die Position aktuell am Ende des Datenstroms befindet. Read wird blockiert, bis mindestens ein Byte von Daten gelesen werden kann, falls keine Daten verfügbar sind. Read gibt 0 nur zurück, wenn das Ende der Datei erreicht wurde. Read ist frei, weniger Bytes als angefordert zurückzugeben, auch wenn das Ende des Datenstroms nicht erreicht wurde.

Jeder Versuch, mithilfe der OracleBFile Methoden Read auf einen geschlossenen Seek Zugriff zuzugreifen, öffnet automatisch einen OracleBFile Datenstrom.

Im folgenden C#-Beispiel wird dieses Schema in einer Oracle-Tabelle vorausgesetzt:

(col1 number, col2 BFILE)

Das Beispiel veranschaulicht die Verwendung der Read Methoden für Seek den Zugriff auf ein OracleBFile Objekt.

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);
        }
    }
}

Gilt für: