Ruisseaux dans c ++

La plupart des programmeurs pensent d'un flux que la même chose que d'un fichier. Vous savez - un fichier qui est stocké sur votre disque dur ou peut-être sur un Serial Bus (USB) lecteur flash universelle ou Secure Digital (SD). Mais flux aller au-delà des fichiers. UN courant est tout type de structure de données que vous courant (qui est, débit) vos données dans et hors de dans une séquence d'octets.

Lorsque vous écrivez une application qui traite des fichiers, vous devez utiliser un ordre spécifique:

  1. Ouvrez le fichier.

    Avant que vous pouvez utiliser un fichier, vous devez l'ouvrir. Pour ce faire, vous spécifiez un nom de fichier.

  2. Accéder au fichier.

    Après vous ouvrez un fichier, vous pouvez soit stocker des données en elle (ce qui est appelé écriture données de données dans le fichier) ou en sortir (ce qu'on appelle lecture données du fichier).

  3. Fermez le fichier.

    Lorsque vous avez terminé la lecture et l'écriture dans un fichier, vous devez fermer le fichier.

Par exemple, une application qui permet de suivre vos stocks et écrit votre portefeuille à un fichier à la fin de la journée pourrait faire ces étapes:




  1. Demandez à l'utilisateur un nom d'un fichier.

  2. Ouvrez le fichier.

  3. Pour chaque objet de stock, écrire les données d'achat d'actions dans le fichier.

  4. Fermez le fichier.

Le lendemain matin, lorsque l'application démarre, il pourrait vouloir lire les informations en retour Voici ce qu'il pourrait faire.:

  1. Demandez à l'utilisateur pour le nom du fichier.

  2. Ouvrez le fichier.

  3. Bien qu'il n'y ait plus de données dans le fichier, de créer une nouvelle Stock objet, lire les données à partir du fichier, et de mettre les données dans l'objet Stock.

  4. Fermez le fichier.

Voici quelques raisons pour fermer un dossier après que vous avez fini de l'utiliser:

  • D'autres applications peuvent être en attente pour utiliser le fichier. Certains systèmes d'exploitation permettent à une application de bloquer un fichier, ce qui signifie que pas d'autres applications peuvent ouvrir le fichier alors que l'application qui a verrouillé le fichier ne l'utilise. Dans de telles situations, une autre application peut utiliser le fichier après la fermeture, mais pas avant.

  • Lorsque vous écrivez dans un fichier, le système d'exploitation décide d'écrire immédiatement les informations sur le disque dur ou un lecteur Flash / carte SD ou à les garder avec lui et recueillir plus d'informations, enfin écrit tout cela en un seul lot. Lorsque vous fermez un fichier, le système d'exploitation met toutes vos données restantes dans le fichier. C'est appelé rinçage le fichier.

Vous avez deux façons d'écrire dans un fichier:

  • Accès séquentiel: Dans un accès séquentiel, vous écrivez dans un fichier ou lire un fichier du début à la fin. Avec cette approche, lorsque vous ouvrez le fichier, vous spécifiez normalement si vous prévoyez de lire ou d'écrire dans le fichier, mais pas les deux en même temps.

    Une fois que vous ouvrez le fichier, si vous écrivez dans le fichier, les données que vous écrivez est ajouté en permanence à la fin du fichier. Ou si vous êtes la lecture du fichier, vous lisez les données au début, puis vous lisez les données qui suivent, alors vous lire les données qui suit que les données, et ainsi de suite, jusqu'à la fin.

  • Accès aléatoire: Avec un accès aléatoire, vous pouvez lire et écrire sur tout octet dans un fichier, quel que soit l'octet vous avez déjà lu ou écrit. En d'autres termes, vous pouvez sauter autour. Vous pouvez lire quelques octets, puis passer à une autre partie du fichier et écrire quelques octets, puis déplacer ailleurs et écrire un peu plus.

Retour dans les jours de le langage de programmation C, plusieurs fonctions de la bibliothèque vous permettent de travailler avec des fichiers. Cependant, ils puait. Ils étaient lourdes et ont rendu la vie difficile. Et oui, quand est venu le long C ++, les gens de créer rapidement un ensemble de classes qui rendait la vie avec des fichiers beaucoup plus facile. Ces personnes ont utilisé la métaphore de flux que nous avons parlé avec enthousiasme.