ストリームとはどういう意味ですか?その特徴は?
質問
C++
と
C#
はどちらも
stream
を使い、多くのクラスに名前を付けています。
-
C++
:
iostream
,istream
,ostream
,stringstream
,ostream_iterator
,istream_iterator
... -
C#
:
Stream
,FileStream
,MemoryStream
,BufferedStream
...
そこで、私は、どのように
stream
は何を意味するのか?
の特徴とは何でしょうか?
stream
?
この用語は、いつクラスの名前に使ってもいいのですか?
ファイルI/Oクラスのみに限定されるのでしょうか?
興味深いことに C は、私が知る限り、この単語をどこにも使っていません。
どのように解決するのですか?
多くのデータ構造 (リスト、コレクションなど) は、以下のように動作します。 コンテナ - として機能し、オブジェクトの集合を保持します。しかし、ストリームは違います。リストがバケツだとすれば、ストリームはホースです。ストリームからデータを引き出したり、ストリームにデータを押し込んだりすることはできますが、通常は 一度だけ で、しかも 一方向 (のみです(もちろん例外はあります)。たとえば、ネットワーク上の TCP データはストリームです。データのチャンクを送信 (または受信) できますが、それは他のコンピューターとの接続時のみで、通常は 1 回のみです。
ストリームは、圧縮ストリーム、暗号化ストリームなど、それを通過するデータを操作することもできます。しかし、ここでも基本的なメタファーは、データのホースです。ファイルは一般に (あるレベルでは) ストリームとしてアクセスされ、シーケンシャルなデータのブロックにアクセスできます。もちろん、ほとんどのファイルシステムはランダムアクセスも提供するので、ストリームにはシーク、位置、長さなどの機能がありますが、すべての実装でサポートされているわけではありません。あるストリームをシークしたり、開いているソケットの長さを取得したりすることは、何の意味も持ちません。
関連
-
[解決済み】C#でクエスチョンマークを2つ並べるとどんな意味になるのか?
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み] EntityTypeにキーが定義されていないエラー
-
[解決済み] explicit キーワードの意味は?
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] MVPとMVC、その違いは何ですか?
-
[解決済み] C++11では、標準化されたメモリモデルが導入されました。その意味するところは?そして、C++プログラミングにどのような影響を与えるのでしょうか?
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み] C#の[Flags]Enum属性の意味とは?
-
[解決済み] Subversionリポジトリにおける「branch」、「tag」、「trunk」の意味とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C#で四捨五入する方法
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み】WebForms UnobtrusiveValidationModeは、jqueryのScriptResourceMappingを必要とする
-
[解決済み] エンティティタイプ <type> は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】トランスポート接続からデータを読み取れない:既存の接続は、リモートホストによって強制的に閉じられました。
-
[解決済み】Sequence contains no matching element(シーケンスにマッチする要素がない
-
[解決済み】クロススレッド操作が有効でない。作成されたスレッド以外のスレッドからアクセスされたコントロール
-
[解決済み】WSACancelBlockingCallの例外について
-
[解決済み】Unityでゲームオブジェクトのすべての子をループスルーして破壊する方法?
-
[解決済み】Nullableオブジェクトは値を持たなければならない?