Самый эффективный способ создания InputStream из OutputStream
Эта страница:http://blog.ostermiller.org/convert-java-outputstream-inputstream описывает, как создать InputStream из OutputStream:
new ByteArrayInputStream(out.toByteArray())
Другими альтернативами являются использование PipedStreams и новых потоков, что является громоздким.
Мне не нравится идея скопировать много мегабайт в новый байтовый массив в памяти. Есть ли библиотека, которая делает это более эффективно?
РЕДАКТИРОВАТЬ:
По совету Лоуренса Гонсалвеса я попробовал PipedStreams, и оказалось, что с ними не так уж сложно иметь дело. Вот пример кода в ближайшем будущем:
(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))