此页面: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))