如何将文件写入文件?
问题描述:
我想:如何将文件写入文件?
saveArr = do
outh <- openFile "test.txt" WriteMode
hPutStrLn outh [1,2,3]
hClose outh
,但它不工作...输出:
从字面'1' 所引起的任何实例(数字字符)
编辑 好hPrint
适用于整数,但浮点数在数组呢? [1.0, 2.0, 3.0]
?
答
hPutStrLn
只能打印字符串。也许你想hPrint
?
hPrint outh [1,2,3]
答
数组,列表和字符串只存在于程序员的想象和某些语言的术语中。
文件是一个字节序列,所以当你想写一些东西给它时,你应该将这个虚构的字符串/列表/数组编码成字节序列(由show
或Storable
等等)。
终端也是一个字节序列,它是对用户显示某些内容所需的操作的编码表示形式。
你有很多种编码方式。你可以让数组的CSV表示由foldr (\a b -> a (',' : b)) "\n" (map shows [1,2,3])
或者你可能想打印出来show [1,2,3]
答
得出的二进制你的类型,然后使用“encodeFile”从Data.Binary包写binnary形式的数据。这与将数据作为字节串写出相似。
还有一个问题:如果有浮点数呢? '[1.2,2.0,3.0]'? – MMM 2010-05-24 11:26:10
@MMM:相同。 'hPrint'可以打印任何Show实例。 – kennytm 2010-05-24 11:47:45