我只是好奇这个问题。这让我感到一个StringBuilder的行为是功能上(如果不是在技术上)相同的流 - 它是一种可以添加其他数据的数据所在的存储仓

再次只是好奇。

有帮助吗?

解决方案

流是的输入和输出的二进制数据。

StringBuilder的是建立的装置的文本数据。

除此之外,还有国家的问题 - 一个StringBuilder只是有电流值,与不知道的“位置”。它允许您访问并在任何地方发生变异数据。甲流,而另一方面,在逻辑上是数据的一个潜在的无限流,用光标在中间某个地方说,你已经有了。你只是一般读/写转发,具有求/位置跳跃到数据流中的特定部分。

试着想象实现与StringBuilder的信息流API ...它只是不适合。你可以的排序的的去做,但你最终用StringReader和StringWriter的,基本上是这样。

其他提示

StringBuilder具有多于只是附加功能。它还具有插入功能,这是不自然的流。如果你想要一个封装了StringWriter流使用StringBuilder类。

一个流通常指的是外部输入/输出源(文件,网络)。 StringBuilder的没有这样的特性。

由于它不是一个真正的流。它更会扩大的缓冲液中。

虽然两者可以具有加入其中的数据,该功能作为一个整体是不同的。

一个流是用于从/输入或输出数据到一些源,而不是用于构建的东西。 StringBuilder的不需要的功能,流提供,例如缓冲等,以建立一个资源。

在另一方面,你会发现班System.IO StringReader / 作家。在的StringWriter 例如工具的的TextWriter 针对一个潜在的的StringBuilder

我个人从来没有使用过它,但如果你有一个文本文件写入程序,你可以把它针对的的TextWriter 工作。然后在您的测试,而不是实例化一个的StreamWriter 您实例化一个的StringWriter ,你可以再检查写入通过查看底层的的StringBuilder

现在我晕...

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top