Cette page: http://ostermiller.org/convert_java_outputstream_inputstream.html
décrit comment créer un InputStream de OutputStream:
new ByteArrayInputStream(out.toByteArray())
D'autres solutions sont à utiliser PipedStreams et de nouveaux threads, ce qui est contraignant.
Je n'aime pas l'idée de la copie de plusieurs méga-octets à nouveau dans la mémoire du tableau d'Octets. Est-il une bibliothèque qui permet de le faire de manière plus efficace ?
EDIT:
Par conseiller de Laurence Gonsalves, j'ai essayé PipedStreams et il s'est avéré qu'ils ne sont pas si difficile à traiter. Voici l'exemple de code dans 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))