私はストリーム、より具体的にはファイルストリームについて聞いてきました。
それで彼らは何ですか?
記憶の中に場所があるものですか?
データが含まれているものですか?
ファイルとオブジェクト間の単なる接続ですか?
助けていただければ幸いです
ストリームという用語は、未知のバイト数を送信または受信できる構造の抽象化です。比phorは水の流れです。必要に応じてデータを取得するか、送信します。これを、たとえば、既知の固定長の配列と比較してください。
ストリームが使用される例には、ファイルの読み取りと書き込み、外部接続を介したデータの送受信が含まれます。ただし、streamという用語は一般的であり、特定の実装については何も言及していません。
IOStreamsは、入出力関数を定義するために使用されるフロントエンドインターフェイス(std::istream
、std::ostream
)です。ストリームには、書式設定オプション、たとえば整数出力に使用するベースも保存され、あらゆる種類のカスタマイズのためにstd::locale
オブジェクトを保持します。それらの最も重要なコンポーネントは、std::streambuf
へのポインタです。これは、ファイル、文字列、画面上の領域などの文字シーケンスへのアクセス方法を定義します。ストリームの基本クラスから派生したクラスは、作成を容易にするために提供されています。 IOStreamsライブラリのすべての機能を説明することで、書籍全体を埋めることができます。C++ 2003では、ライブラリセクションの約半分がストリーム関連機能に費やされていました。
ストリームは、ファイルをプログラムに接続し、両方向のデータの流れを維持する線形キューです。ここで、ソースは任意のファイル、I/Oデバイス、ハードディスク、CD/DVDなどです。
基本的にストリームは2つのタイプの場合です1.テキストストリーム2.バイナリストリーム
テキストストリーム:一連の文字が一列に並び、各行は改行(unix)で終了します。
バイナリストリーム:変更せずに、コンピューターのメインメモリで内部的にコード化されたデータです。
ファイルシステムは、端末、ディスクドライブ、テープドライブなど、さまざまなデバイスで動作するように設計されています。各デバイスは異なりますが、ファイルシステムはそれぞれをストリームと呼ばれる論理デバイスに変換します。ストリームはデバイスに依存しないため、同じ機能を使用してディスクファイルとテープファイルを書き込むことができます。より専門的な用語では、ストリームはプログラマと実際に使用されているデバイスとの間の抽象化を提供します。