Haskell 逐行读取文件
我试图逐行读取一个文件,但当我到达EOF时,我不知道如何停止 我有以下代码:Haskell 逐行读取文件,haskell,Haskell,我试图逐行读取一个文件,但当我到达EOF时,我不知道如何停止 我有以下代码: readWholeFile = do inputFile <- openFile "example.txt" ReadMode readALine inputFile readALine x = do y <- hGetLine x print y readALine x 你要找的是,他 签出在读取一行之
readWholeFile = do inputFile <- openFile "example.txt" ReadMode
readALine inputFile
readALine x = do y <- hGetLine x
print y
readALine x
你要找的是,他
签出在读取一行之前,您可以使用手动检查EOF状态,也可以使用现成的(惰性)功能。在进一步阅读之前,您可以使用
hIsEOF
测试手柄x。当读取行的第一个字符时遇到文件结尾时,hGetLine会失败,请执行另一个解决方案。您可以使用readFile
延迟读取文件,延迟按需拆分文件并逐行获取结果:
readLines :: FilePath -> IO [String]
readLines = fmap lines . readFile
确切的错误信息是什么?
readLines :: FilePath -> IO [String]
readLines = fmap lines . readFile