質問

これについてはちょっと興味があります。StringBuilder の動作は、機能的には (技術的にはそうではないにしても) Stream と同じであることが印象に残りました。Stream は、他のデータを追加できるデータのビンです。

繰り返しますが、ただの好奇心です。

役に立ちましたか?

解決

ストリームバイナリのデータの入力および出力である。

のStringBuilderはのテキストのデータを構築するための手段です。

はそれ以上に、国家の問題があります - StringBuilderのはただ「位置」の無いアイデアを、現在の値を持っています。それはあなたがどこでもそれ内のデータにアクセスし、変異させることができます。ストリームは、他の一方で、あなたが持っている場所を言ってどこか途中でカーソルで、論理的にデータの潜在的に無限の流れです。あなたは、一般的に、単にデータ・ストリームの特定の部分にスキップする/位置をシークして、前方に読み出し/書き込みます。

のStringBuilderとストリームAPIを実装想像してみてください...それだけで収まりません。あなたは、の並べ替えののそれを行うことができますが、基本的には、にStringReaderとにStringWriterで終わると思います。

他のヒント

StringBuilderだけの機能を追加しより多くを持っています。また、ストリームのために不自然で、インサート機能を持っています。あなたがStringWriterをラップストリームをしたい場合はStringBuilderクラスを使用します。

ストリームは、通常、外部入力/出力ソース(ファイル、ネットワーク)を指します。 StringBuilderのは、そのような特性を持っていません。

それは本当にストリームではありませんので。それは成長するバッファの多くはでています。

両方がそれらに追加されたデータを有することができるが、

、全体としての機能が異なっている。

ストリームはない何かを構築するため、いくつかのソースに/からデータを入力または出力するためのものです。 StringBuilderのリソースを構築するなど、バッファリング、のように、ストリームが提供する機能を必要としません。

一方、クラスが見つかります 文字列リーダー/ライター System.IO 内。の 文字列ライター 例えば実装する テキストライター 根底にあるものに対して 文字列ビルダー.

個人的には使用したことがありませんが、テキスト ファイルの書き込みルーチンがある場合は、それを機能させることができます。 テキストライター. 。次に、テストでは、インスタンス化する代わりに、 ストリームライター あなたはインスタンスを作成します 文字列ライター そして、その根底にあるものを見て、何が書かれているかを確認することができます 文字列ビルダー.

今、めまいがしてきました...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top