从文件中读取并以向量形式返回输出

mar*_*ark 1 clojure

我只是在学习 clojure 并尝试读取文件并使用返回的结果向量做一些事情。在这种情况下,我只是想把它打印出来。

下面是有问题的代码:

(defn read_file
  "Read in a file from the resources directory"
  [input]
  (with-open [rdr (reader input)]
    (doseq [line (line-seq rdr)])))

(defn -main []
  (println (read_file "resources/input.txt") ))
Run Code Online (Sandbox Code Playgroud)

println 返回“nil”。我需要做什么才能返回“行”

nta*_*lbs 5

如果文件不是很大,您可以使用slurp将文件内容作为字符串读取,然后用特定的分隔符(在本例中为\n)拆分它。

(defn read-file [f]
  (-> (slurp f)
      (clojure.string/split-lines)))
Run Code Online (Sandbox Code Playgroud)