我正在尝试在文件开头添加一个数字,但是"appendFile"函数却将内容添加到文件末尾。
我写了以下代码但没有成功。
myAppendFile file = do x <- readFile file
writeFile file "1"
appendFile file x
return x
当我执行以下操作时:
*main> myAppendFile "File.txt"
错误提示为:
the ressource is busy (file is locked)
所以,我该如何在文件开头写入内容?
readFile
是按需读取文件内容的,而底层文件处理程序仍然保持在执行writeFile
时。解决方法是要求完整的文件内容,以便在执行writeFile
之前关闭处理程序。在我看来,更简单的方法是使用严格IO,在这种情况下你可能会发现strict很有用(代价是将所有文件内容作为字符列表保存在内存中)。 - Javran