Почему я не могу записать в файл? - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь создать файл 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:// Iполучить запрещенное разрешение.

1 Ответ

5 голосов
/ 11 марта 2019

Каждый вызов writeFile перезаписывает существующий файл следующей записью.

Что вы хотите сделать, это либо

  • Открыть файл (openFile), запишите каждую строку в дескриптор файла (hPutStrLn), закройте файл в конце (hClose).
  • Создайте гигантскую строку, представляющую все содержимое файла, и writeFileчто в конце.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...