gpt4 book ai didi

clojure - 如何使用 clojure.edn/read 获取文件中的对象序列?

转载 作者:行者123 更新时间:2023-12-04 03:08:24 27 4
gpt4 key购买 nike

Clojure 1.5 引入 clojure.edn ,其中包括一个需要 PushbackReader 的读取函数.

如果我想读取前五个对象,我可以这样做:

(with-open [infile (java.io.PushbackReader. (clojure.java.io/reader "foo.txt"))]
(binding [*in* infile]
(let [edn-seq (repeatedly clojure.edn/read)]
(dorun (take 5 (map println edn-seq))))))

我怎样才能打印出所有的对象?考虑到其中一些可能为零,似乎我需要检查 EOF 或类似的东西。我想要一个类似于我从 line-seq 得到的对象序列.

最佳答案

使用 :eof 键

http://clojure.github.com/clojure/clojure.edn-api.html

opts is a map that can include the following keys: :eof - value to return on end-of-file. When not supplied, eof throws an exception.



编辑:对不起,这还不够详细!给你:
(with-open [in (java.io.PushbackReader. (clojure.java.io/reader "foo.txt"))]
(let [edn-seq (repeatedly (partial edn/read {:eof :theend} in))]
(dorun (map println (take-while (partial not= :theend) edn-seq)))))

应该这样做

关于clojure - 如何使用 clojure.edn/read 获取文件中的对象序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15234880/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com