OracleBFile.Read(Byte[], Int32, Int32) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Legge una sequenza di byte dal flusso corrente OracleBFile e sposta in avanti la posizione all'interno del flusso in base al numero di byte letti.
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
Parametri
- buffer
- Byte[]
Matrice di byte. Quando termina, il buffer contiene la matrice di byte specificata con i valori tra offset e (offset + count) sostituiti dai byte letti dall'origine corrente.
- offset
- Int32
Offset dei byte in base zero in in buffer corrispondenza del quale iniziare a archiviare i dati letti dal flusso corrente.
- count
- Int32
Numero massimo di byte da leggere dal flusso corrente.
Valori restituiti
Numero totale di byte letti nel buffer. Può essere minore del numero di byte richiesti se il numero di byte non è attualmente disponibile oppure zero se è stata raggiunta la fine del file.
Eccezioni
La somma di offset e count è maggiore della lunghezza del buffer.
buffer è un riferimento Null (Nothing in Visual Basic).
offset o count è negativo.
Connessione a cui è associato un BFILE oggetto viene chiuso.
Si è verificato un errore di I/O.
I metodi sono stati chiamati dopo la chiusura o l'eliminazione del flusso.
Commenti
Il Read metodo legge un massimo di count byte dal flusso corrente e li archivia a buffer partire da offset. La posizione corrente all'interno del flusso è avanzata dal numero di byte letti; Tuttavia, se si verifica un'eccezione, la posizione corrente all'interno del flusso rimane invariata.
Read restituisce il numero di byte letti. Il valore restituito è zero solo se la posizione è attualmente alla fine del flusso.
Read si blocca fino a quando non è possibile leggere almeno un byte di dati, nel caso in cui non siano disponibili dati.
Read restituisce 0 solo quando è stata raggiunta la fine del file.
Read è libero di restituire meno byte rispetto a quanto richiesto anche se la fine del flusso non è stata raggiunta.
Qualsiasi tentativo di accesso a un oggetto chiuso OracleBFile usando i Read metodi o Seek riapre automaticamente un OracleBFile flusso.
L'esempio C# seguente presuppone questo schema in una tabella Oracle:
(col1 number, col2 BFILE)
Nell'esempio viene illustrato l'utilizzo dei Read metodi e Seek per accedere a un OracleBFile oggetto .
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);
}
}
}