Partager via


OracleBFile.Read(Byte[], Int32, Int32) Méthode

Définition

Lit une séquence d'octets à partir du flux OracleBFile actuel et avance la position dans le flux du nombre d'octets lus.

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

Paramètres

buffer
Byte[]

Tableau d'octets. Lorsque cette méthode est retournée, la mémoire tampon contient le tableau d’octets spécifié dont les valeurs comprises entre offset et (offset + count) sont remplacées par les octets lus dans la source en cours.

offset
Int32

Dans buffer, décalage d'octet de base zéro auquel commencer le stockage des données lues dans le flux actuel.

count
Int32

Nombre maximal d'octets à lire dans le flux actuel.

Retours

Nombre total d'octets lus dans la mémoire tampon. Il peut être inférieur au nombre d'octets demandé si ce nombre d'octets n'est pas actuellement disponible, ou être égal à zéro si la fin du fichier a été atteinte.

Exceptions

La somme de offset et count est supérieure à la longueur de la mémoire tampon.

buffer est une référence Null (Nothing en Visual Basic).

offset ou count est un nombre négatif.

La connexion à laquelle BFILE est associé est fermée.

Une erreur d'E/S s'est produite.

Des méthodes ont été appelées après que le flux a été fermé ou supprimé.

Remarques

La Read méthode lit un maximum d’octets count du flux actuel et les stocke dans à buffer partir de offset. La position actuelle dans le flux est avancée par le nombre d’octets lus ; toutefois, si une exception se produit, la position actuelle dans le flux reste inchangée. Read retourne le nombre d’octets lus. La valeur de retour est égale à zéro uniquement si la position se trouve actuellement à la fin du flux. Read bloquera jusqu’à ce qu’au moins un octet de données puisse être lu, dans le cas où aucune donnée n’est disponible. Read retourne 0 uniquement lorsque la fin du fichier a été atteinte. Read est libre de retourner moins d’octets que demandé même si la fin du flux n’a pas été atteinte.

Toute tentative d’accès à un fermé OracleBFile à l’aide des Read méthodes ou Seek rouvre automatiquement un OracleBFile flux.

L’exemple C# suivant suppose ce schéma dans une table Oracle :

(col1 number, col2 BFILE)  

L’exemple illustre l’utilisation des Read méthodes et Seek pour accéder à un OracleBFile objet.

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);  
        }  
    }  
}  

S’applique à