我只是好奇这个.令我感到震惊的是,StringBuilder的功能在功能上(如果不是技术上)与Stream相同 - 它是可以添加其他数据的数据仓.
再次,只是好奇.
StringBuilder
不仅仅是附加功能.它还具有插入功能,这对于流来说是不自然的.StringWriter
如果你想要一个包装的流,请使用该类StringBuilder
.
Stream是二进制数据的输入和输出.
StringBuilder是构建文本数据的方法.
除此之外,还有状态问题 - StringBuilder只有当前值,不知道"位置".它允许您访问和改变其中的任何位置的数据.另一方面,流在逻辑上是一个潜在的无限数据流,光标位于中间某个位置以说明您需要的位置.您通常只需读/写前进,Seek/Position可跳转到数据流的特定部分.
试着想象用StringBuilder实现Stream API ......它只是不适合.你可以排序的做到这一点,但你最终用StringReader和StringWriter的,基本上是这样.
流通常是指外部输入/输出源(文件,网络).StringBuilder没有这样的特性.