Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. |
Traduction
Source
|
BufferedStream.Read, méthode
Copie les octets du flux en cours figurant dans la mémoire tampon dans un tableau.
Assembly : mscorlib (dans mscorlib.dll)
Paramètres
- array
- Type : System.Byte[]
Mémoire tampon dans laquelle les octets sont copiés.
- offset
- Type : System.Int32
Dans la mémoire tampon, offset d'octet à partir duquel commence la lecture des octets.
- count
- Type : System.Int32
Nombre d'octets à lire.
Valeur de retour
Type : System.Int32Nombre total d'octets lus dans array. Le total peut être inférieur au nombre d'octets demandé si ce nombre n'est pas actuellement disponible, ou il peut être égal à 0 si la fin du flux a été atteinte avant la lecture des données.
| Exception | Condition |
|---|---|
| ArgumentException |
La longueur de array moins offset est inférieure à count. |
| ArgumentNullException |
array est null. |
| ArgumentOutOfRangeException |
offset ou count est négatif. |
| IOException |
Le flux n'est pas ouvert ou bien il est null. |
| NotSupportedException |
Le flux ne prend pas en charge la lecture. |
| ObjectDisposedException |
Des méthodes ont été appelées après que le flux a été fermé. |
La méthode Read ne retourne 0 que si la fin du flux est atteinte. Dans tous les autres cas, Read lit toujours au moins un octet du flux avant tout retour. Par définition, si aucune donnée n'est disponible dans le flux lors d'un appel à Read, la méthode Read retourne 0 (la fin du flux est automatiquement atteinte). Une implémentation est libre de retourner moins d'octets que le nombre demandé si la fin du flux n'a pas été atteinte.
Utilisez BinaryReader pour la lecture des types de données primitifs.
Cet exemple de code fait partie d'un plus grand exemple fourni pour la classe BufferedStream.
// Receive data using the BufferedStream. Console.WriteLine("Receiving data using BufferedStream."); bytesReceived = 0; startTime = DateTime.Now; int numBytesToRead = receivedData.Length; while (numBytesToRead > 0) { // Read may return anything from 0 to numBytesToRead. int n = bufStream.Read(receivedData,0, receivedData.Length); // The end of the file is reached. if (n == 0) break; bytesReceived += n; numBytesToRead -= n; } bufferedTime = (DateTime.Now - startTime).TotalSeconds; Console.WriteLine("{0} bytes received in {1} seconds.\n", bytesReceived.ToString(), bufferedTime.ToString("F1"));
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.