此页面:http : //blog.ostermiller.org/convert-java-outputstream-inputstream 描述如何从OutputStream创建InputStream:
new ByteArrayInputStream(out.toByteArray())
其他选择是使用PipedStreams和新线程,这很麻烦。
我不喜欢将许多兆字节复制到新的内存字节数组中的想法。是否有一个图书馆可以更有效地做到这一点?
编辑:
根据劳伦斯·贡萨尔维斯(Laurence Gonsalves)的建议,我尝试了PipedStreams,结果发现它们并不难处理。这是clojure中的示例代码:
(defn #^PipedInputStream create-pdf-stream [pdf-info]
(let [in-stream (new PipedInputStream)
out-stream (PipedOutputStream. in-stream)]
(.start (Thread. #(;Here you write into out-stream)))
in-stream))