OracleBFile.Read(Byte[], Int32, Int32) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Přečte posloupnost bajtů z aktuálního OracleBFile datového proudu a posune pozici v rámci streamu o počet přečtených bajtů.
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
Parametry
- buffer
- Byte[]
Pole bajtů. Když se tato metoda vrátí, vyrovnávací paměť obsahuje zadané pole bajtů s hodnotami mezi offset
a (offset
+ count
) nahrazené bajty načtenými z aktuálního zdroje.
- offset
- Int32
Nulový odsazení bajtů, při buffer
kterém se mají začít ukládat data načtená z aktuálního datového proudu.
- count
- Int32
Maximální počet bajtů, které se mají načíst z aktuálního datového proudu.
Návraty
Celkový počet bajtů načtených do vyrovnávací paměti. To může být menší než počet požadovaných bajtů, pokud tento počet bajtů není aktuálně k dispozici, nebo nula, pokud bylo dosaženo konce souboru.
Výjimky
Součet offset
a count
je větší než délka vyrovnávací paměti.
buffer
je odkaz s hodnotou null (Nothing
v jazyce Visual Basic).
offset
nebo count
je negativní.
Připojení, ke kterému je přidruženo, BFILE
je uzavřeno.
Došlo k vstupně-výstupní chybě.
Metody byly volány po zavření nebo odstranění datového proudu.
Poznámky
Metoda Read načte maximální počet count
bajtů z aktuálního datového proudu a uloží je na buffer
začátku od offset
. Aktuální pozice v rámci streamu je rozšířena o počet přečtených bajtů; Pokud však dojde k výjimce, aktuální pozice v rámci datového proudu zůstane beze změny.
Read vrátí počet přečtených bajtů. Návratová hodnota je nula pouze v případě, že je pozice aktuálně na konci datového proudu.
Read bude blokovat, dokud nebude možné číst alespoň jeden bajt dat v případě, že nejsou k dispozici žádná data.
Read vrátí hodnotu 0 pouze tehdy, když je dosaženo konce souboru.
Read aplikace může vracet méně bajtů, než je požadováno, i když nebylo dosaženo konce datového proudu.
Při každém pokusu o přístup k uzavřenému OracleBFile objektu Read pomocí metody nebo Seek se datový proud automaticky znovu otevře OracleBFile .
Následující příklad jazyka C# předpokládá toto schéma v tabulce Oracle:
(col1 number, col2 BFILE)
Příklad ukazuje použití Read metod a Seek pro přístup k objektu OracleBFile .
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);
}
}
}