C ++: Qu’est-ce qu’un stream?

J’ai entendu parler de stream, plus spécifiquement des stream de fichiers.

Alors qu’est-ce qu’ils sont?

Est-ce quelque chose qui a un emplacement dans la mémoire?

Est-ce quelque chose qui contient des données?

Est-ce juste une connexion entre un fichier et un object?

Toute aide serait appréciée

Le terme stream est une abstraction d’une construction qui vous permet d’envoyer ou de recevoir un nombre inconnu d’octets. La métaphore est un jet d’eau. Vous prenez les données en l’état ou les envoyez si nécessaire. Comparez ceci à un tableau, par exemple, qui a une longueur fixe et connue.

Les exemples d’utilisation de stream incluent la lecture et l’écriture dans des fichiers, la réception ou l’envoi de données via une connexion externe. Cependant, le terme stream est générique et ne dit rien sur l’implémentation spécifique.

IOStreams est une interface frontale ( std::istream , std::ostream ) utilisée pour définir les fonctions d’entrée et de sortie. Les stream stockent également des options de formatage, par exemple la base à utiliser pour la sortie entière et contiennent un object std::locale pour tout type de personnalisation. Leur composant le plus important est un pointeur sur un std::streambuf qui définit comment accéder à une séquence de caractères, par exemple, un fichier, une chaîne, une zone à l’écran, etc. Les classes dérivées des classes de base de stream sont fournies pour faciliter la création. Décrire l’intégralité des fonctionnalités de la bibliothèque IOStreams peut remplir un livre en entier: En C ++ 2003, environ la moitié de la section bibliothèque était consacrée aux fonctionnalités liées au stream.

Stream est une queue linéaire qui connecte un fichier au programme et maintient le stream de données dans les deux sens. Ici, la source est n’importe quel fichier, périphérique d’E / S, disque dur, CD / DVD, etc.

Fondamentalement le stream est si deux type 1.Text Stream 2.Binary stream

Flux de texte: il s’agit d’une séquence de caractères organisée en ligne et chaque ligne terminée par une nouvelle ligne (unix).

Flux binary: Il s’agit de données telles qu’elles sont codées en interne dans la mémoire principale de l’ordinateur, sans aucune modification.

Le système de fichiers est conçu pour fonctionner avec une grande variété de périphériques, y compris les terminaux, les unités de disque, les lecteurs de bande, etc. Les stream sont indépendants du périphérique, donc la même fonction peut être utilisée pour écrire un fichier disque et un fichier de bande. Dans un terme plus technique, le stream fournit une abstraction entre le programmeur et le périphérique utilisé.