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 datovém proudu 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ů. Pokud tato metoda vrátí, vyrovnávací paměť obsahuje zadané bajtové pole s hodnotami mezi offset a (offset + count) nahrazené bajty přečtenými z aktuálního zdroje.
- offset
- Int32
Posun bajtů založený na nule, ve 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í číst z aktuálního datového proudu.
Návraty
Celkový počet bajtů přečtených do vyrovnávací paměti. To může být menší než počet bajtů požadovaných v případě, že 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 null (Nothing v Visual Basic).
offset nebo count je negativní.
Spojení, ke kterému BFILE je přidruženo, 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 čte maximální počet bajtů z aktuálního datového count proudu a ukládá je na buffer začátku od offset. Aktuální pozice v rámci datového proudu je rozšířena počtem přečtených bajtů; Pokud však dojde k výjimce, zůstane aktuální pozice v rámci datového proudu nezměněna.
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 pokud bylo dosaženo konce souboru.
Read je zdarma vrátit méně bajtů, než je požadováno, i když nebyl dosažen konec datového proudu.
Jakýkoli pokus o přístup k uzavřenému OracleBFile objektu pomocí Read metod nebo Seek metod znovu otevře OracleBFile datový proud automaticky.
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 a Seek metody 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);
}
}
}