Самый эффективный способ создания 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))

Ответы на вопрос(4)

Ваш ответ на вопрос