为什么java没有StringBufferOutputStream



所以如果有一个java.io。StringBufferInputStream,你会认为应该有一个StringBufferOutputStream

你知道为什么没有吗?

同样,也有一个SequenceInputStream,但没有SequenceOutputStream。

我猜有人从来没有在Java 1.0中制作StringBufferOutputStream,因为该产品有点"匆忙推向市场"。当Java 1.1出现时,人们真正理解了读取器和写入器是用于字符的,输入流和输出流是用于字节的,将流用于字符串的整个概念被认为是错误的,因此StringBufferInputStream被正确地弃用了,没有机会从来没有的合作伙伴出现。

A SequenceInputStream是一种很好的方式来读取一堆流所有连接在一起,但它没有多大意义写一个单一的流到多个流。好吧,我想如果你想要将一个大的流写入多个分区(这让我想起了Hadoop),你可以理解这一点。只是在标准库中不够常见。这里的一个复杂之处在于,您需要指定每个输出分区的大小,并且实际上只对文件有意义(这些文件的名称可能带有递增的后缀),因此不能很好地泛化到任意的输出流中。

StringBufferInputStream已弃用,因为字节和字符不是一回事。正确使用的类是StringReader和StringWriter。

如果你考虑一下,没有办法使SequenceOutputStream工作。SequenceInputStream从第一个流读取,直到耗尽,然后从下一个流读取。由于OutputStream永远不会耗尽(除非它碰巧连接到一个对等端关闭连接的套接字),那么SequenceOutputStream类如何知道何时转移到下一个流呢?

StringBufferInputStream早就被低估了。使用StringReader和StringWriter

相关内容

  • 没有找到相关文章

最新更新