Haskell 逐行读取文件

Haskell 逐行读取文件,haskell,Haskell,我试图逐行读取一个文件,但当我到达EOF时,我不知道如何停止 我有以下代码: readWholeFile = do inputFile <- openFile "example.txt" ReadMode readALine inputFile readALine x = do y <- hGetLine x print y readALine x 你要找的是,他 签出在读取一行之

我试图逐行读取一个文件,但当我到达EOF时,我不知道如何停止

我有以下代码:

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