到目前为止,我有:
(:require [clojure-csv.core :as csv])
(:require [clojure.java.io :as io]))
(def csv-file (.getFile (clojure.java.io/resource "verbs.csv")))
(defn process-csv [file]
(with-open [rdr (io/reader file)]
(csv/parse-csv rdr)))
但我越来越java.io.IOException: Stream closed
。我正在使用clojure-csv,它公开了两种方法,我正在使用第一种方法,parse-csv
文档说:
Takes a CSV as a char sequence or string, and returns a lazy sequence of vectors of strings
我想我知道的是:with-open
是懒惰的,并且rdr
in(csv/parse-csv rdr)))
是 csv 文件的单行,对吗?
PS。我也想搜索文件,重复打开文件(即使它被懒惰地读取)并搜索整个内容是否昂贵?