我正在尝试创建一个csv
文件用于测试,当我尝试编写该文件时,该文件会继续在0kb
或1kb
处波动,并且仅写入1条记录。这样的波动持续一段时间,直到我得到
openfile:权限被拒绝
module Generator where
path="d:\\data.csv"
cnt=1000000
main::IO()
main=do
let payload=makeString
writeToFile path cnt payload
makeString::String
makeString="0741142339,\r\n"
writeToFile::String->Int->String->IO()
writeToFile _ 0 _ =return ()
writeToFile path cnt payload=writeFile path payload >> writeToFile path (cnt-1) payload
如果我尝试写到C://
上的某个位置,则会获得不允许的权限。
答案 0 :(得分:5)
每次调用writeFile
都会用下一条记录覆盖现有文件。
您想要做的是任一
openFile
),将每一行写入文件句柄(hPutStrLn
),最后关闭文件(hClose
)。writeFile
。