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
|
Stream, classe
Donne une vue générique d'une séquence d'octets.
Assembly : mscorlib (dans mscorlib.dll)
Le type Stream expose les membres suivants.
| Nom | Description | |
|---|---|---|
|
CanRead | En cas de substitution dans une classe dérivée, obtient une valeur indiquant si le flux actuel prend en charge l'écriture. |
|
CanSeek | En cas de substitution dans une classe dérivée, obtient une valeur indiquant si le flux actuel prend en charge la recherche. |
|
CanTimeout | Obtient une valeur qui détermine si le flux actuel peut expirer. |
|
CanWrite | En cas de substitution dans une classe dérivée, obtient une valeur indiquant si le flux actuel prend en charge l'écriture. |
|
Length | En cas de substitution dans une classe dérivée, obtient la longueur du flux en octets. |
|
Position | En cas de substitution dans une classe dérivée, obtient la position actuelle dans le flux. |
|
ReadTimeout | Obtient ou définit une valeur exprimée en millisecondes qui définit la durée pendant laquelle le flux tentera d'effectuer la lecture avant d'arriver à expiration. |
|
WriteTimeout | Obtient ou définit une valeur exprimée en millisecondes qui définit la durée pendant laquelle le flux tentera d'inscrire des données avant d'arriver à expiration. |
| Nom | Description | |
|---|---|---|
|
BeginRead | Débute une opération de lecture asynchrone. |
|
BeginWrite | Débute une opération d'écriture asynchrone. |
|
Close | Ferme le flux actuel et libère les ressources (telles que les sockets et les handles de fichiers) associées à celui-ci. |
|
CopyTo(Stream) | Lit les octets à partir du flux actuel et les écrit dans le flux de destination. |
|
CopyTo(Stream, Int32) | Lit tous les octets du flux actuel et les écrit dans un flux de destination, à l'aide d'une taille de mémoire tampon spécifiée. |
|
CreateObjRef | Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant. (Hérité de MarshalByRefObject.) |
|
CreateWaitHandle | Obsolète. Alloue un objet WaitHandle. |
|
Dispose() | Libère toutes les ressources utilisées par Stream. |
|
Dispose(Boolean) | Libère les ressources non managées utilisées par Stream et libère éventuellement les ressources managées. |
|
EndRead | Attend que la requête asynchrone en attente se termine. |
|
EndWrite | Termine une opération d'écriture asynchrone. |
|
Equals(Object) | Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.) |
|
Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.) |
|
Flush | En cas de substitution dans une classe dérivée, efface toutes les mémoires tampons du flux et provoque l'écriture de toutes les données se trouvant dans les mémoires tampons dans le périphérique sous-jacent. |
|
GetHashCode | Sert de fonction de hachage pour un type particulier. (Hérité de Object.) |
|
GetLifetimeService | Récupère l'objet de service de durée de vie en cours qui contrôle la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject.) |
|
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) |
|
InitializeLifetimeService | Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject.) |
|
MemberwiseClone() | Crée une copie superficielle de l'objet Object actif. (Hérité de Object.) |
|
MemberwiseClone(Boolean) | Crée une copie superficielle de l'objet MarshalByRefObject actuel. (Hérité de MarshalByRefObject.) |
|
ObjectInvariant | Infrastructure. Prend en charge un Contract. |
|
Read | En cas de substitution dans une classe dérivée, lit une séquence d'octets à partir du flux actuel et avance la position dans le flux du nombre d'octets lus. |
|
ReadByte | Lit un octet à partir du flux et avance d'un octet la position au sein du flux, ou retourne -1 s'il se situe à la fin du flux. |
|
Seek | En cas de substitution dans une classe dérivée, définit la position actuelle dans le flux. |
|
SetLength | En cas de substitution dans une classe dérivée, définit la longueur de flux actuel. |
|
Synchronized | Crée un wrapper thread-safe (synchronisé) autour de l'objet Stream spécifié. |
|
ToString | Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.) |
|
Write | En cas de substitution dans une classe dérivée, écrit une séquence d'octets à partir du flux actuel et avance la position actuelle dans le flux du nombre d'octets écrits. |
|
WriteByte | Écrit un octet à la position actuelle dans le flux actuel et avance d'un octet la position dans flux. |
Les flux impliquent trois opérations fondamentales :
-
Vous pouvez lire à partir des flux. La lecture est le transfert de données d'un flux vers une structure de données tel qu'un tableau d'octets.
-
Vous pouvez écrire dans les flux. L'écriture est le transfert de données d'une structure de données vers un flux.
-
Les flux peuvent prendre en charge la recherche. La recherche consiste à envoyer une requête concernant la position actuelle dans un flux et à modifier cette dernière. La fonctionnalité de recherche dépend du type de magasin de stockage du flux. Par exemple, les flux de réseau n'ont pas de concept unifié pour une position actuelle et ne prennent donc généralement pas en charge la recherche.
Stream est la classe de base abstraite de tous les flux. Un flux est une abstraction d'une séquence d'octets, telle qu'un fichier, un périphérique d'entrée/sortie, un canal de communication à processus interne, ou un socket TCP/IP. La classe Stream et ses classes dérivées donnent une vue générique de ces différents types d'entrées et de sorties, isolant le programmeur des détails spécifiques au système d'exploitation et aux périphériques sous-jacents.
Selon la source de données sous-jacente ou le référentiel, les flux peuvent prendre en charge certaines de ces fonctionnalités. Une application peut envoyer une requête à un flux concernant ses fonctionnalités en utilisant les propriétés CanRead, CanWrite et CanSeek.
Les méthodes Read et Write lisent et écrivent les données dans divers formats. Pour les flux qui prennent la recherche en charge, utilisez les méthodes Seek et SetLength ainsi que les propriétés Position et Length pour envoyer une requête concernant la position actuelle et la longueur d'un flux et les modifier.
Certaines implémentations de flux effectuent la mise en mémoire tampon locale des données sous-jacentes afin d'améliorer la performance. Pour ces flux, la méthode Flush peut être utilisée pour effacer les mémoires tampons internes et assurer l'écriture de toutes les données dans la source de données sous-jacente ou le référentiel.
L'appel d'un Close sur un Stream vide toutes les données mises en mémoire tampon, en appelant Flush pour vous. Close libère également les ressources de système d'exploitation telles que les handles de fichiers, les connexions réseau ou la mémoire utilisés pour toute mise en mémoire tampon interne. La classe BufferedStream offre la possibilité d'encapsuler un flux mis en mémoire tampon autour d'un autre flux afin d'améliorer la performance de lecture et d'écriture.
Si vous voulez un flux sans magasin de stockage (également appelé compartiment de bits), utilisez Null.
Remarques à l'attention des implémenteurs
Lors de l'implémentation d'une classe dérivée de Stream, vous devez fournir des implémentations pour les méthodes Read et Write. Les méthodes asynchrones BeginRead, EndRead, BeginWrite et EndWrite sont implémentées à l'aide des méthodes synchrones Read et Write. De même, vos implémentations de Read et Write fonctionneront correctement avec les méthodes asynchrones. Les implémentations par défaut de ReadByte et WriteByte créent un nouveau tableau d'octets à un seul élément puis appellent vos implémentations de Read et Write. Si la classe dérive de Stream et que vous avez une mémoire tampon d'octets interne, il est vivement recommandé de substituer ces méthodes pour y accéder afin d'améliorer les performances. Vous devez également fournir des implémentations de CanRead, CanSeek, CanWrite, Flush, Length, Position, Seek et SetLength.
Ne substituez pas la méthode Close ; placez plutôt toute la logique de nettoyage de Stream dans la méthode Dispose. Pour plus d'informations, consultez Implémentation d'une méthode Dispose.
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.
System.MarshalByRefObject
System.IO.Stream
Microsoft.JScript.COMCharStream
System.Data.OracleClient.OracleBFile
System.Data.OracleClient.OracleLob
System.Data.SqlTypes.SqlFileStream
System.IO.BufferedStream
System.IO.Compression.DeflateStream
System.IO.Compression.GZipStream
System.IO.FileStream
System.IO.MemoryStream
System.IO.Pipes.PipeStream
System.IO.UnmanagedMemoryStream
System.Net.Security.AuthenticatedStream
System.Net.Sockets.NetworkStream
System.Printing.PrintQueueStream
System.Security.Cryptography.CryptoStream