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.
Consente di leggere una sequenza di byte dal flusso OracleBFile corrente e di passare alla posizione successiva 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 questo metodo viene restituito, il buffer contiene la matrice di byte specificata con i valori compresi tra offset
e (offset
+ count
) sostituiti con i byte letti dall'origine corrente.
- offset
- Int32
Offset dei byte in base zero in buffer
in corrispondenza del quale iniziare l'archiviazione dei dati letti dal flusso corrente.
- count
- Int32
Numero massimo di byte da leggere dal flusso corrente.
Restituisce
Numero complessivo di byte letti nel buffer. È possibile che questo numero sia minore di quello dei byte richiesti se tale quantità di byte non è disponibile o pari a 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.
La connessione a cui è associato un BFILE
è chiusa.
Si è verificato un errore di I/O.
Sono stati chiamati metodi 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 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 un numero inferiore di byte rispetto a quello 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'uso 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);
}
}
}