(with-open bindings & body)
在绑定了名字 name
与初始值 init
的 try
表达式里面对 body
进行求值
并按照绑定时间从晚到早的顺序
在 finally
语句里面对每个 name
执行 (.close name)
调用
(ns io
(:require [clojure.java.io :as io]))
(defn readLineByLine [file-name]
(with-open [reader (io/reader file-name)]
(doseq [line (line-seq reader)]
(println line))))
(defn copyLineByLine [source target]
(with-open [reader (io/reader source)
writer (io/writer target)]
(io/copy reader writer)))