作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将数据保存到文件中,并在重新运行程序时恢复数据。
我已经这样定义了我的 defstruct:
(defstruct书签:url:标题:评论)
程序将简单地执行以下操作:
1. 从 url-db.txt 加载 defstruct
2. 从传递到 *command-line-args* 的导入文件中读取并添加到内部数据变量。
3.重写url-db.txt文件。
示例导入文件:
www.cnn.com|新闻|这里是 CNN
www.msnbc.com|搜索|
news.ycombinator.com|新闻|科技新闻
最佳答案
Tom Crayford 的答案很接近,但使用“pr”函数而不是“print”。 “pr”生成可以用“read”读回的字符串。
(defn save-db [db filename]
(spit
filename
(with-out-str (pr db))))
(defn load-db [filename]
(with-in-str (slurp filename)
(read)))
请注意,如果 *print-dup* 设置为 true,则此操作将不起作用。请参阅ticket #176另请注意,当您读回数据库时,记录将是普通映射,而不是结构映射。结构映射尚无法使用 pr/read 进行序列化。
关于clojure - 如何将我的 defstruct 保留并恢复到文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1291765/
我是一名优秀的程序员,十分优秀!