Skip to content

Instantly share code, notes, and snippets.

@raek
Created November 3, 2010 20:09
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save raek/661631 to your computer and use it in GitHub Desktop.
(import '(java.io InputStream Reader))
(def buffer-size 8192)
(defn byte-seq [^InputStream input-stream]
(lazy-seq
(let [buffer (make-array Byte/TYPE buffer-size)
size (.read input-stream buffer)]
(when-not (= size -1)
(lazy-cat (take size buffer)
(byte-seq input-stream))))))
(defn char-seq [^Reader reader]
(lazy-seq
(let [buffer (make-array Character/TYPE buffer-size)
size (.read reader buffer)]
(when-not (= size -1)
(lazy-cat (take size buffer)
(char-seq reader))))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment