Streams in C ++

Die meisten Programmierer denken Sie an einen Strom als die gleiche Sache wie eine Datei. Sie wissen - eine Datei, die auf Ihrer Festplatte oder vielleicht auf einem Universal Serial Bus (USB) Flash-Laufwerk oder Secure Digital (SD) Karte gespeichert ist. Aber Ströme gehen über die reine Dateien. EIN Strom ist jede Art von Datenstruktur, die Sie Strom (Das heißt, fließen) Daten in und aus einer Sequenz von Bytes.

Wenn Sie eine Anwendung schreiben, die mit Dateien handelt, müssen Sie eine bestimmte Reihenfolge verwenden:

  1. Öffnen Sie die Datei.

    Bevor Sie eine Datei verwenden können, müssen Sie es öffnen. Dabei geben Sie einen Dateinamen.

  2. Besuchen Sie die Datei.

    Nachdem Sie eine Datei öffnen, können Sie entweder speichern Daten in sie (das heißt Schreiben Daten in die Datei) oder Abrufen von Daten aus der es (das nennt man Lesen Daten aus der Datei).

  3. Schließen Sie die Datei.

    Nachdem Sie eine Datei aus und Schreiben zu Ende gelesen haben, müssen Sie die Datei schließen.

Zum Beispiel, dass eine Anwendung Ihre Bestände und schreibt Ihr Portfolio in eine Datei am Ende des Tages könnten diese Schritte tun:


  1. Bitten Sie den Benutzer für einen Namen einer Datei.

  2. Öffnen Sie die Datei.

  3. Für jede Aktie Objekt, schreiben die Bestandsdaten in die Datei.

  4. Schließen Sie die Datei.

Am nächsten Morgen, wenn die Anwendung gestartet wird, könnte es wollen die Informationen zurück in zu lesen Hier ist, was es tun könnte.:

  1. Bitten Sie den Benutzer für den Namen der Datei ein.

  2. Öffnen Sie die Datei.

  3. Zwar gibt es mehr Daten in der Datei ist, erstellen Sie ein neues Vektorobjekt, um die Daten aus der Datei lesen und die Daten in das Vektorobjekt setzen.

  4. Schließen Sie die Datei.

Hier sind ein paar Gründe, um eine Datei zu schließen, nachdem Sie fertig sind mit ihm:

  • Andere Anwendungen könnten warten, um die Datei zu verwenden. Einige Betriebssysteme erlauben eine Anwendung sperren eine Datei bedeutet, dass keine anderen Anwendungen die Datei öffnen kann, während die Anwendung, die die Datei gesperrt ist es zu benutzen. In solchen Situationen kann eine andere Anwendung die Datei verwenden, nachdem Sie es zu schließen, aber nicht bis dahin.

  • Wenn Sie in eine Datei schreiben, entscheidet das Betriebssystem, ob die Informationen auf der Festplatte oder Flash-Laufwerk / SD-Karte sofort schreiben oder um es zu halten und weitere Informationen sammeln, schließlich alles als eine einzige Partie zu schreiben. Wenn Sie eine Datei zu schließen, setzt das Betriebssystem alle Ihre restlichen Daten in die Datei. Das nennt man Spülung die Datei.

Sie haben zwei Möglichkeiten, um eine Datei zu schreiben:

  • Sequenziellen Zugriff: In sequenziellen Zugriff, schreiben Sie in einer Datei oder aus einer Datei gelesen von Anfang bis Ende. Mit diesem Ansatz, wenn Sie die Datei öffnen, geben Sie in der Regel, ob Sie von zu lesen planen oder in die Datei schreiben, aber nicht beides zugleich.

    Nachdem Sie die Datei öffnen, wenn Sie auf die Datei schreiben, wird die Daten, die Sie schreiben, ständig an das Ende der Datei hinzugefügt. Oder wenn Sie aus der Datei lesen, lesen Sie die Daten am Anfang, dann lesen Sie die Daten, die folgt, dann lesen Sie die Daten, die die Daten folgt, und so weiter, bis zum Ende.

  • Random Access: Mit Random Access, können Sie zu jedem Byte in einer Datei, unabhängig davon, welches Byte zuvor gelesen oder geschrieben lesen und schreiben. Mit anderen Worten, können Sie überspringen herum. Sie können einige Bytes lesen, dann in einen anderen Teil der Datei zu bewegen und ein paar Bytes zu schreiben, und dann an anderer Stelle zu bewegen und etwas mehr schreiben.

Zurück in den Tagen der Programmiersprache C, mehrere Bibliotheksfunktionen können Sie mit Dateien arbeiten. Aber sie stank. Sie waren umständlich und das Leben schwer gemacht. Und so, wenn C ++ kam, geschaffen, um Menschen schnell eine Reihe von Klassen, die das Leben mit Dateien viel einfacher gemacht. Diese Menschen verwendet, um den Strom Metapher, die wir haben darüber worden schwärmen.