Здравствуйте, я пытаюсь своевременно записать файл ~1GB
. Есть ли какой-нибудь рекомендуемый метод. До сих пор процесс занимает где-то порядка десятков минут.Я ошибаюсь при использовании Text
я должен использовать ByteString
?(Я также использовал String
)
pt="d:\\data2.csv"
cnt=400000000
main::IO()
main=do
let payload=dat
writeWithHandle pt dat
dat::Text
dat=Data.Text.pack "0744442339"
writeWithHandle::FilePath->Text->IO()
writeWithHandle path tx=do
handle<-openFile path WriteMode
writeTimes cnt handle dat
writeTimes::Int->Handle->Text->IO()
writeTimes cnt handle payload= forM_ ([0..cnt]) (\x->Data.Text.IO.hPutStrLn handle payload)
Я не понимаю, почему это занимает так много порядка десятков минут. Сначала я использовал writeFile
, но я думал, что это будет означать постояннооткрывая и закрывая file
для каждой строки, поэтому я использовал appendFile
безрезультатно.