OracleBFile.Read(Byte[], Int32, Int32) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt een reeks bytes uit de huidige OracleBFile stroom gelezen en wordt de positie binnen de stream verplaatst door het aantal bytes dat is gelezen.
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
Parameters
- buffer
- Byte[]
Een matrix van bytes. Wanneer deze methode wordt geretourneerd, bevat de buffer de opgegeven bytematrix door de waarden tussen offset en (offset + count) vervangen door de bytes die zijn gelezen uit de huidige bron.
- offset
- Int32
De byte-offset buffer op basis van nul waarin de gegevens worden opgeslagen die uit de huidige stroom worden gelezen.
- count
- Int32
Het maximum aantal bytes dat moet worden gelezen uit de huidige stream.
Retouren
Het totale aantal bytes dat in de buffer is gelezen. Dit kan kleiner zijn dan het aantal aangevraagde bytes als er momenteel niet veel bytes beschikbaar zijn of nul als het einde van het bestand is bereikt.
Uitzonderingen
De som van offset en count is groter dan de bufferlengte.
buffer is een null-verwijzing (Nothing in Visual Basic).
offset of count is negatief.
De verbinding waarmee een BFILE is gekoppeld, wordt gesloten.
Er is een I/O-fout opgetreden.
Methoden werden aangeroepen nadat de stream is gesloten of verwijderd.
Opmerkingen
De Read methode leest maximaal bytes uit count de huidige stream en slaat deze op bufferoffsetvanaf . De huidige positie in de stream wordt geavanceerd door het aantal gelezen bytes; Als er echter een uitzondering optreedt, blijft de huidige positie binnen de stroom ongewijzigd.
Read retourneert het aantal bytes dat wordt gelezen. De retourwaarde is alleen nul als de positie zich momenteel aan het einde van de stream bevindt.
Read wordt geblokkeerd totdat ten minste één byte aan gegevens kan worden gelezen, in het geval dat er geen gegevens beschikbaar zijn.
Read retourneert alleen 0 wanneer het einde van het bestand is bereikt.
Read is gratis om minder bytes te retourneren dan aangevraagd, zelfs als het einde van de stream niet is bereikt.
Elke poging om een gesloten OracleBFile toegang te krijgen met behulp van de Read of Seek methoden, opent automatisch een OracleBFile stream opnieuw.
In het volgende C#-voorbeeld wordt uitgegaan van dit schema in een Oracle-tabel:
(col1 number, col2 BFILE)
In het voorbeeld ziet u hoe u de Read en Seek methoden gebruikt om toegang te krijgen tot een OracleBFile object.
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);
}
}
}