我无法理解如果使用流做标题中所说的内容,如果我使用对象流将对象写入文件,是否会移动文件流的指针以及何时使用它,之后,写入什么,它是在上述对象之后写的?输入流也是如此
非常感谢
答案 0 :(得分:1)
是的,当包装流(顺便称为装饰器模式)写入最外面的流(实际上是一个shell)时,会向下传播该链。
这里要注意的一件重要事情是链中的各种Stream对象可能有自己的缓冲区,因此写入不会立即沿着管道向下移动。这方面的好例子是缓冲输出流和zip输出流。
如果您打算将某些内容写入包装流,然后将某些内容直接写入链中更深层的某个流,则建议您在最外层的流上调用flush()以确保其中的任何缓冲区链条将被刷新 - 否则你就有可能无序地写入位。