OracleBFile.Read(Byte[], Int32, Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Liest eine Folge von Bytes aus dem aktuellen OracleBFile-Stream und verschiebt die Position im Stream um die Anzahl der gelesen Bytes nach vorn.
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. Nach dem Beenden dieser Methode enthält der Puffer das angegebene Bytearray mit den Werten zwischen offset
und (offset
+ count
), die durch aus der aktuellen Quelle gelesene Bytes ersetzt wurden.
- offset
- Int32
Der nullbasierte Byteoffset im buffer
, ab dem die aus dem aktuellen Stream gelesenen Daten gespeichert werden.
- count
- Int32
Die maximale Anzahl an Bytes, die aus dem aktuellen Stream gelesen werden sollen.
Gibt zurück
Die Gesamtanzahl der in den Puffer gelesenen Bytes. Dies kann weniger als die Anzahl der angeforderten Bytes sein, wenn diese Anzahl an Bytes derzeit nicht verfügbar ist, oder 0 (null), wenn das Dateiende erreicht ist.
Ausnahmen
Die Summe von offset
und count
ist größer als die Pufferlänge.
buffer
ist ein NULL-Verweis (Nothing
in Visual Basic).
offset
oder count
ist ein negativer Wert.
Die Verbindung, der eine BFILE
zugeordnet ist, wurde geschlossen.
E/A-Fehler
Es wurden Methoden aufgerufen, nachdem der Stream geschlossen oder freigegeben wurde.
Hinweise
Die Read -Methode liest ein Maximum an count
Bytes aus dem aktuellen Stream und speichert sie am buffer
Anfang unter offset
. Die aktuelle Position im Stream wird um die Anzahl der gelesenen Bytes erweitert. Wenn jedoch eine Ausnahme auftritt, bleibt die aktuelle Position im Stream unverändert.
Read gibt die Anzahl der gelesenen Bytes zurück. Der Rückgabewert ist nur 0, wenn sich die Position derzeit am Ende des Datenstroms befindet.
Read blockiert, bis mindestens ein Byte 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, um weniger Bytes als angefordert zurückzugeben, auch wenn das Ende des Datenstroms nicht erreicht wurde.
Jeder Versuch, mit den Methoden oder Seek auf ein geschlossenes OracleBFile Objekt zuzugreifen, wird automatisch wieder geöffnetOracleBFile.Read
Im folgenden C#-Beispiel wird dieses Schema in einer Oracle-Tabelle vorausgesetzt:
(col1 number, col2 BFILE)
Das Beispiel veranschaulicht die Verwendung der Read Methoden und Seek für 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);
}
}
}