2024年Clojure调查问卷!中分享您的想法。

欢迎!请查阅关于页面以了解更多关于如何使用本指南的信息。

0
ClojureCLR

例如

(spit "c:/tmp/spit.txt" "012345")
(spit "c:/tmp/spit.txt" "BB")

结果是一个包含:BB345的文件。

由cees van Kemenade通过电子邮件报告。

6 答案

0

评论者:dmiller

带有字符串参数的spit默认以FileMode.CreateOrNew模式打开FileStream(包装在StreamWriter中)。无论文件是否存在,这都将正常工作。要默认为Truncate,如果文件不存在则失败。因此,我不想将其设置为默认值。我也不知道如何处理文件存在性和给定文件模式之间的测试,以确定要采取的操作。

如果您知道文件存在并想截断,请使用该文件模式调用spit。

(spit "filename" "test" :file-mode System.IO.FileMode/Truncate)

0

评论者:dmiller

正确操作是调用spit并指定文件模式

(spit "c:/tmp/spit.txt" "BB" :file-mode System.IO.FileMode/Truncate)

0

评论者:dmiller

根据原文作者的要求,我已决定重新考虑这个问题。

0

评论者:dmiller

Cees建议使用附带的代码。

0

评论者:dmiller

补充:将slurp改为以非锁定模式读取文件。

0
参考:https://clojure.atlassian.net/browse/CLJCLR-37(由dmiller报告)
...