提供已连接的OutputStream和InputStream的最佳实践

时间:2012-10-12 20:41:19

标签: java inputstream outputstream

  

可能重复:
  Connecting an input stream to an outputstream

如果我有一个方法需要一个OutputStream(来自第三方库),另一个方法需要一个InputStream(再次来自第三方库)。将两者结合在一起的最佳做法是什么?基本上我需要某种对象来提供连接的InputStream和OutputStream。

我想到了一种使用SynchronousQueue的方法,但是必须将每个原始字节转换和取消转换为Object Byte听起来不是一个好主意。

我不想使用临时文件,并且缓存整个InputStream是不可能的,因为数据可能非常大。

编辑:另外,如果可能的话,我想保留这个单线程。

这里的最佳做法是什么?

编辑:我需要澄清一下:我没有InputStream或OutputStream,只有两种方法。一个期望OutputStream将数据写入,另一个期望InputStream从中读取数据。

2 个答案:

答案 0 :(得分:1)

如果数据不是很大

ByteArrayOutputStream -> byte[] -> ByteArrayInputStream

,否则

PipedInputStream + PipedOutputStream

需要2个主题,因为java不支持" coroutine"

答案 1 :(得分:0)

您可以使用公共IOUtils的一种复制方法,即

static int  copy(InputStream input, OutputStream output) 

将InputStream中的字节复制到OutputStream。