6 clojure
我想将数据保存到文件中,并在重新运行程序时恢复数据.
我已经定义了我的defstruct:
(defstruct bookmark:url:title:comments)
程序将简单地执行以下操作:
1.从url-db.txt加载defstruct
2.从传入*command-line-args*的导入文件中读取并添加到内部数据var.
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)))
Run Code Online (Sandbox Code Playgroud)
请注意,如果*print-dup*设置为true,则不起作用.请参阅#176 票据另请注意,当您重新读入数据库时,记录将是普通地图,而不是结构地图.尚未使用pr/read序列化结构图.
| 归档时间: |
|
| 查看次数: |
365 次 |
| 最近记录: |