Just in case I'll mention that Meikel's use of (with-open) will
automatically close the reader.

On May 19, 11:40 am, dokondr <doko...@gmail.com> wrote:
> On May 19, 6:52 pm, Meikel Brandmeyer <m...@kotka.de> wrote:
>
> > Hi,
>
> > something like the following should work.
>
> > (with-open [rdr (java.io.FileReader. "file.txt")]
> >   (doseq [line (line-seq rdr)
> >           word (.split line "\\s")]
> >     (when (.endsWith word "ing")
> >       (println word))))
>
> > Sincerely
> > Meikel
>
> Thanks everybody! The short one from Meikel (above) looks nice to
> me :)
>
> And the one from ClojureDocs too:
>
> (defn read-lines
>   "Like clojure.core/line-seq but opens f with reader.  Automatically
>   closes the reader AFTER YOU CONSUME THE ENTIRE SEQUENCE."
>   [f]
>   (let [read-line (fn this [^BufferedReader rdr]
>                     (lazy-seq
>                      (if-let [line (.readLine rdr)]
>                        (cons line (this rdr))
>                        (.close rdr))))]
>     (read-line (reader f))))

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to