有没有人有创建Java中的管道对象,任何好的建议是两者的InputStream和OutputStream,因为Java没有多重继承和两个流是抽象类,而不是接口?
基本需求是有一个对象可以传递给需要InputStream或OutputStream的东西来管道从一个线程输出到另一个线程的输入.
似乎错过了这个问题的重点.如果我理解正确,你需要一个在一个线程中像InputStream一样工作的对象,在另一个线程中想要一个OutputStream来创建一个在两个线程之间进行通信的方法.
也许一个答案是使用组合而不是继承(无论如何都是推荐的练习).使用getInputStream()和getOutputStream()方法创建一个包含相互连接的PipedInputStream和PipedOutputStream的管道.
您不能直接将Pipe对象传递给需要流的东西,但是您可以传递它的get方法的返回值来执行它.
那对你有用吗?
java.io.PipedOutputStream和java.io.PipedInputStream看起来是用于此场景的类.它们被设计为一起用于在线程之间管道数据.
如果你真的想要传递一些单个对象,则需要包含其中一个并通过getter公开它们.