OracleBFile.Read(Byte[], Int32, Int32) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Lee una secuencia de bytes en la secuencia OracleBFile actual y hace avanzar la posición dentro de la secuencia en función del número de bytes leídos.
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
Parámetros
- buffer
- Byte[]
Matriz de bytes. Cuando este método devuelve un valor, el búfer contiene la matriz de bytes especificada con valores entre offset
y (offset
+ count
) reemplazada por los bytes leídos desde el origen actual.
- offset
- Int32
Posición de desplazamiento en bytes de base cero de buffer
donde se comienza a almacenar los datos leídos de la secuencia actual.
- count
- Int32
Número máximo de bytes que se deben leer de la secuencia actual.
Devoluciones
Número total de bytes leídos en el búfer. Puede ser menor que el número de bytes solicitado si dicho número de bytes no está disponible en la actualidad, o cero si se ha alcanzado el final del archivo.
Excepciones
La suma de offset
y count
es mayor que la longitud del búfer.
buffer
es una referencia nula (Nothing
en Visual Basic).
offset
o count
es negativo.
La conexión a la que está asociado BFILE
está cerrada.
Error de E/S.
Se llamó a algún método después de cerrar o desechar la secuencia.
Comentarios
El Read método lee un máximo de count
bytes de la secuencia actual y los almacena buffer
a partir offset
de . La posición actual dentro de la secuencia está avanzada por el número de bytes leídos; sin embargo, si se produce una excepción, la posición actual dentro de la secuencia permanece sin cambios.
Read devuelve el número de bytes leídos. El valor devuelto es cero solo si la posición está actualmente al final de la secuencia.
Read se bloqueará hasta que se pueda leer al menos un byte de datos, en caso de que no haya datos disponibles.
Read devuelve 0 solo cuando se ha alcanzado el final del archivo.
Read es libre para devolver menos bytes de los solicitados incluso si no se ha alcanzado el final de la secuencia.
Cualquier intento de acceder a un objeto cerrado OracleBFile mediante los Read métodos o Seek vuelve a abrir una OracleBFile secuencia automáticamente.
En el ejemplo de C# siguiente se supone que este esquema se encuentra en una tabla de Oracle:
(col1 number, col2 BFILE)
En el ejemplo se muestra el uso de los Read métodos y Seek para tener acceso a un OracleBFile objeto .
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);
}
}
}