使用标准Java库获取Writer的InputStream

时间:2012-02-03 19:01:48

标签: java stream inputstream outputstream

我有一个方法将数据写入OutputStream但需要将OutputStream的内容作为InputStream返回

public InputStream getInputStreamOfData(type param) {
    // ..... data 
    OutputStreamWriter writer = new OutputStreamWriter();
    writer.write(data);
    // convert writer object to an InputStream 
}

我遇到了一些库来执行此操作,例如IOUtils和其他基于线程的方法。有没有一种使用标准Java库实现此目的的简单方法?我想将writer中的内容作为InputStream返回给调用方法使用。

谢谢!

2 个答案:

答案 0 :(得分:2)

写入ByteArrayOutputStream,然后获取字节数组,并从此字节数组返回ByteArrayInputStream

答案 1 :(得分:2)

我认为正确的方法是使用PipedInputStream。它就像unix管道(在高级别)。 PipedInputStream构造函数采用PipedOutputStream,因此如果您写入PipedOutputStream,您将得到您想要的内容!

祝你好运!