से बाइट हिस्सों का आलसी अनुक्रम बनाना एक इनपुट स्ट्रीम को देखते हुए मैं बाइट-एरे (भाग) के रूप में डेटा का आलसी अनुक्रम बनाना चाहता हूं। यहाँ मेरी कोशिश है:क्लोजर: इनपुट स्ट्रीम
(defn- read-or-nil [stream]
(let [buf (byte-array 2)]
(when-not (= -1 (.read stream buf))
buf)))
(defn byte-chunk-seq [stream]
(cons (read-or-nil stream) (lazy-seq (byte-chunk-seq stream))))
(with-open [rdr (java.io.FileInputStream. "/tmp/wut")]
(take 2 (byte-chunk-seq rdr)))
पिछले बयान में जहाँ मैं कोड का परीक्षण कर रहा हूँ, मैं एक:
IOException स्ट्रीम बंद java.io.FileInputStream.readBytes (FileInputStream.java:-2)।
यदि मैं take 1
होने के लिए कथन बदलता हूं तो यह ठीक हो जाता है, लेकिन इससे मुझे बहुत मदद नहीं मिलती है। क्या किसी के पास कोई विचार है कि यह क्यों काम नहीं करेगा?