title: How to read lines from stdin (*in*) in clojure
body: <p>I am writing my first clojure program, and want to read lines from stdin.</p>
  
  <p>When I try this:</p>
  
  <pre><code>(doall (map #(println %) (line-seq *in*)))
  </code></pre>
  
  <p>I get this exception:</p>
  
  <pre><code>Exception in thread "main" java.lang.ClassCastException: clojure.lang.LineNumberingPushbackReader cannot be cast to java.io.BufferedReader (test.clj:0)
  </code></pre>
  
  <p>I get the same results in version 1.0 and 1.1</p>
  
  <p>So how do I convert <code>*in*</code> into a seq I can iterate over?  I would have thought that this is common enough that <code>*in*</code> itself would be iterable, but that does not work either - if I try to use it directly I get:</p>
  
  <pre><code>java.lang.IllegalArgumentException: Don't know how to create ISeq from: clojure.lang.LineNumberingPushbackReader (NO_SOURCE_FILE:0)
  </code></pre>
  
  <p>Also, are there any examples of doing general file handling in clojure?  </p>