是否有人对在InputStream和OutputStream中创建管道对象有任何好的建议,因为Java不具有多重继承,而且这两个流都是抽象类而不是接口?
底层的需求是,有一个对象可以传递给需要InputStream或OutputStream才能将输出从一个线程输送到另一个线程输入的事物。
发布于 2008-12-13 23:25:02
这个问题的重点似乎被忽略了。如果我正确地理解了您,您需要一个在一个线程中像InputStream那样工作的对象,在另一个线程中创建一个类似于OutputStream的对象来创建两个线程之间的通信方式。
也许一个答案是使用组合而不是继承(这是推荐的做法)。创建一个管道,其中包含一个PipedInputStream和一个相互连接的PipedOutputStream,其中包含getInputStream()和getOutputStream()方法。
您不能直接将管道对象传递给需要流的东西,但是可以传递它的get方法的返回值。
这对你有用吗?
发布于 2008-12-13 08:22:12
java.io.PipedOutputStream和java.io.PipedInputStream看起来是用于此场景的类。它们被设计成一起用于在线程之间输送数据。
如果您真的想要传递某个对象,那么它需要包含每个对象中的一个并通过getter公开它们。
发布于 2008-12-13 07:01:04
我认为这是一件很平常的事。看这个问题。
Easy way to write contents of a Java InputStream to an OutputStream
https://stackoverflow.com/questions/364936
复制相似问题