请在 Clojure 2024状况调查中分享您的想法!

欢迎!请查阅关于页面以了解更多本站的工作原理。

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
...