a 如何PipedInputStream
从 a 中读取PipedOutputStream
?是使用toString()
还是有一些隐藏的魔法来访问private
成员变量?
问问题
495 次
2 回答
2
PipedOutputStream.write(int byte)
将简单地调用该protected
方法PipedInputStream.receive(int byte)
,而该方法又将简单地填充其自己的缓冲区。批量读/写方法也是如此。
请注意,内部缓冲区PipedInputStream
不是private
,但protected
因此可以以与方法相同的方式访问protected
receive()
。但是PipedOutputStream
公平竞争并且不直接访问它。
这当然可行,因为protected
方法和字段不仅可以通过派生类访问,还可以通过Wikipedia中所示的完整包访问。
不需要像“toString”这样的“魔法”。
于 2012-04-12T18:48:52.247 回答
0
通常你有一个后台线程,它从 OutputStream 读取并将它读取的内容写入 PipedInputStream 直到它完成。
于 2012-04-12T18:49:16.793 回答