La forma más eficiente de crear InputStream desde OutputStream
Esta página:http://blog.ostermiller.org/convert-java-outputstream-inputstream describe cómo crear un InputStream desde OutputStream:
new ByteArrayInputStream(out.toByteArray())
Otras alternativas son usar PipedStreams y nuevos subprocesos, lo cual es incómodo.
No me gusta la idea de copiar muchos megabytes a una nueva matriz de bytes de memoria. ¿Hay una biblioteca que hace esto de manera más eficiente?
EDITAR:
Por consejo de Laurence Gonsalves, probé PipedStreams y resultó que no son tan difíciles de tratar. Aquí está el código de ejemplo en 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))