I am writing my first clojure program, and want to read lines from stdin.
When I try this:
(doall (map #(println %) (line-seq *in*)))
I get this exception:
Exception in thread "main" java.lang.ClassCastException: clojure.lang.LineNumberingPushbackReader cannot be cast to java.io.BufferedReader (test.clj:0)
I get the same results in version 1.0 and 1.1
So how do I convert *in*
into a seq I can iterate over? I would have thought that this is common enough that *in*
itself would be iterable, but that does not work either - if I try to use it directly I get:
java.lang.IllegalArgumentException: Don't know how to create ISeq from: clojure.lang.LineNumberingPushbackReader (NO_SOURCE_FILE:0)
Also, are there any examples of doing general file handling in clojure?
question from:
https://stackoverflow.com/questions/2034059/how-to-read-lines-from-stdin-in-in-clojure 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…