请在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 发布

应OP的请求,我决定重新考虑这个问题。

0

评论由:dmiller 发布

Cees建议附上的代码。

0

评论由:dmiller 发布

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

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