หน้านี้: http://blog.ostermiller.org/convert-java-outputstream-inputstream อธิบายวิธีการสร้าง InputStream จาก OutputStream:
new ByteArrayInputStream(out.toByteArray())
ทางเลือกอื่นคือการใช้ PipedStreams และเธรดใหม่ซึ่งยุ่งยาก
ฉันไม่ชอบแนวคิดในการคัดลอกเมกะไบต์จำนวนมากไปยังหน่วยความจำใหม่ในอาร์เรย์ไบต์หน่วยความจำ มีห้องสมุดที่มีประสิทธิภาพมากกว่านี้หรือไม่?
แก้ไข:
ตามคำแนะนำจาก Laurence Gonsalves ฉันลองใช้ PipedStreams และปรากฎว่าพวกเขาไม่ยากที่จะจัดการ นี่คือโค้ดตัวอย่างใน 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))