OracleBFile.Read(Byte[], Int32, Int32) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Odczytuje sekwencję bajtów z bieżącego OracleBFile strumienia i rozwija pozycję w strumieniu przez liczbę odczytanych bajtów.
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[]
Tablica bajtów. Gdy ta metoda zwraca, bufor zawiera określoną tablicę bajtów z wartościami między offset
i (offset
+ count
) zastąpionymi bajtami odczytanymi z bieżącego źródła.
- offset
- Int32
Przesunięcie bajtów na podstawie zera, w buffer
którym należy rozpocząć przechowywanie danych odczytanych z bieżącego strumienia.
- count
- Int32
Maksymalna liczba bajtów do odczytania z bieżącego strumienia.
Zwraca
Całkowita liczba bajtów odczytanych do buforu. Może to być mniejsza niż liczba bajtów żądanych, jeśli liczba bajtów nie jest obecnie dostępna lub zero, jeśli osiągnięto koniec pliku.
Wyjątki
Suma offset
wartości i count
jest większa niż długość buforu.
buffer
jest odwołaniem o wartości null (Nothing
w Visual Basic).
offset
lub count
jest ujemny.
Połączenie, z którym BFILE
jest skojarzone, jest zamknięte.
Wystąpił błąd we/wy.
Metody były wywoływane po zamknięciu lub usunięciu strumienia.
Uwagi
Metoda Read odczytuje maksymalnie bajty count
z bieżącego strumienia i zapisuje je na buffer
początku na offset
. Bieżące położenie w strumieniu jest zaawansowane przez liczbę odczytanych bajtów; jednak w przypadku wystąpienia wyjątku bieżące położenie w strumieniu pozostaje niezmienione.
Read Zwraca liczbę odczytanych bajtów. Zwracana wartość jest równa zero tylko wtedy, gdy pozycja znajduje się obecnie na końcu strumienia.
Read będzie blokować do momentu odczytu co najmniej jednego bajtu danych w przypadku, gdy żadne dane nie są dostępne.
Read Metoda zwraca wartość 0 tylko wtedy, gdy osiągnięto koniec pliku.
Read program jest bezpłatny, aby zwrócić mniej bajtów niż zażądano, nawet jeśli koniec strumienia nie został osiągnięty.
Każda próba uzyskania dostępu do zamkniętego OracleBFile przy użyciu Read metod lub Seek automatycznie otwiera OracleBFile strumień.
W poniższym przykładzie w języku C# przyjęto założenie, że ten schemat jest w tabeli Oracle:
(col1 number, col2 BFILE)
W przykładzie pokazano użycie Read metod i Seek w celu uzyskania OracleBFile dostępu do obiektu.
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);
}
}
}