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))