(line-seq rdr)
Returns the lines of text from rdr as a lazy sequence of strings. rdr must implement java.io.BufferedReader.
;; Count lines of a file (loses head):
user=> (with-open [rdr (clojure.java.io/reader "/etc/passwd")]
(count (line-seq rdr)))
(import '(java.io BufferedReader StringReader))
;; line terminators are stripped
user=> (line-seq (BufferedReader. (StringReader. "1\
2\
\
3")))
("1" "2" "" "3")
;; empty string gives nil
user=> (line-seq (BufferedReader. (StringReader. "")))
nil
;; read from standard input
user=> (nth (line-seq (java.io.BufferedReader. *in*)) 2)
#_=> 0
#_=> 1
#_=> 2
"2"