所以我试图创建一个从句柄读取并写入stdOut的程序,如下所示:
import IO
import System
cat w = do
fromHandle <- getAndOpenFile w ReadMode
contents <- hGetContents fromHandle
putStr contents
putStr "Done."
getAndOpenFile :: String -> IOMode -> IO Handle
getAndOpenFile name mode =
do
catch (openFile name mode)
(\_ -> do
putStrLn ("Cannot open "++ name ++"\n")
return())
我对Hs相当陌生,看起来这应该比我为自己制作简单得多。有什么建议可以帮助我进一步前进吗?
用法为./cat“foo.txt”,并将foo.txt文件中的文本打印到stdOut。
答案 0 :(得分:4)
以下功能可以满足您的需求。
readFile :: FilePath -> IO String
将此与putStr一起使用以打印IO String