Clojure 1.5는 PushbackReader
을 필요로하는 읽기 기능을 포함하여 clojure.edn
을 도입했습니다. 내가 처음 다섯 오브젝트를 읽고 싶다면, 나는clojure.edn/read를 사용하여 파일의 객체 시퀀스를 가져 오는 방법은 무엇입니까?
을 수행 할 수 있습니다
(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))))))
어떻게 대신 모든 개체를 인쇄 할 수 있습니까? 그것들 중 일부가 nils 일 수 있다고 생각하면, EOF 나 유사한 것을 검사 할 필요가있는 것 같습니다. line-seq
에서 얻을 수있는 것과 유사한 일련의 객체를 갖고 싶습니다. 파일의 마지막에 수익 가치 - EOF :
그래, 설명서에 바로 나와 있습니다. 오케이. 그것은 EOF에 대한 내 자신의 견해를 정의해야하는 다소 더러 웠지만 어쩌면 나는 그게 왜 올바른 해결책인지 아직 몰랐을 것입니다. – ToBeReplaced
@bfontaine 님의 다른 답변보기. 내용 독립성에는 가치가 있지만,': eof' 키에 대해 EDN으로 직렬화 할 수없는 값을 사용하여 얻을 수 있습니다. – ToBeReplaced