Najbardziej skuteczny sposób tworzenia strumienia wejściowego z OutputStream

Ta strona:http://blog.ostermiller.org/convert-java-outputstream-inputstream opisuje, jak utworzyć strumień wejściowy z OutputStream:

new ByteArrayInputStream(out.toByteArray())

Inne alternatywy to użycie PipedStreams i nowych wątków, które są kłopotliwe.

Nie podoba mi się pomysł kopiowania wielu megabajtów na nową tablicę bajtów pamięci. Czy istnieje biblioteka, która robi to bardziej wydajnie?

EDYTOWAĆ:

Za radą Laurence Gonsalves spróbowałem PipedStreams i okazało się, że nie są one tak trudne do pokonania. Oto przykładowy kod w 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))

questionAnswers(4)

yourAnswerToTheQuestion