OracleBFile.Read(Byte[], Int32, Int32) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Läser en sekvens med byte från den aktuella OracleBFile dataströmmen och flyttar positionen inom dataströmmen med antalet lästa byte.
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
Parametrar
- buffer
- Byte[]
En matris med byte. När den här metoden returnerar innehåller bufferten den angivna bytematrisen med värdena mellan offset och (offset + count) ersatta av byteen som lästs från den aktuella källan.
- offset
- Int32
Den nollbaserade byteförskjutningen buffer där du kan börja lagra data som lästs från den aktuella strömmen.
- count
- Int32
Det maximala antalet byte som ska läsas från den aktuella strömmen.
Returer
Det totala antalet byte som lästs in i bufferten. Detta kan vara mindre än antalet byte som begärs om så många byte inte är tillgängliga för närvarande, eller noll om slutet av filen har nåtts.
Undantag
Summan av offset och count är större än buffertlängden.
buffer är en nullreferens (Nothing i Visual Basic).
offset eller count är negativ.
Anslutningen som en BFILE är associerad med är stängd.
Ett I/O-fel uppstod.
Metoder anropades efter att strömmen stängdes eller togs bort.
Kommentarer
Metoden Read läser maximalt antal count byte från den aktuella strömmen och lagrar dem från buffer och med offset. Den aktuella positionen i dataströmmen avanceras av antalet lästa byte. Men om ett undantag inträffar förblir den aktuella positionen i dataströmmen oförändrad.
Read returnerar antalet lästa byte. Returvärdet är bara noll om positionen för närvarande är i slutet av strömmen.
Read blockeras tills minst en byte data kan läsas, i händelse av att inga data är tillgängliga.
Read returnerar endast 0 när slutet av filen har nåtts.
Read kan returnera färre byte än vad som begärts även om strömmens slut inte har nåtts.
Alla försök att komma åt en stängd OracleBFile med hjälp av Read metoderna eller Seek öppnar en OracleBFile dataström automatiskt.
Följande C#-exempel förutsätter att det här schemat finns i en Oracle-tabell:
(col1 number, col2 BFILE)
Exemplet visar hur du använder Read metoderna och Seek för att komma åt ett 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);
}
}
}