haskell中的io模块主要是用于读写文件屏幕的,通过import IO来导入
其中有如下常用定义
data IOMode = ReadMode | WriteMode | AppendMode | ReadWriteMode
openFile :: FilePath -> IOMode -> IO Handle hClose :: Handle -> IO () hIsEOF :: Handle -> IO Bool hGetChar :: Handle -> IO Char hGetLine :: Handle -> IO String hGetContents :: Handle -> IO String getChar :: IO Char getLine :: IO String getContents :: IO String hPutChar :: Handle -> Char -> IO () hPutStr :: Handle -> String -> IO () hPutStrLn :: Handle -> String -> IO () putChar :: Char -> IO () putStr :: String -> IO () putStrLn :: String -> IO () readFile :: FilePath -> IO String writeFile :: FilePath -> String -> IO () bracket :: IO a-> (a -> IO b) -> (a -> IO c) -> IO c
其中readFile和writeFile是不需要事先打开文件就能读写整个文件的。bracket是用来安全读写文件的,在对外部操作中很可能遇到异常,这时候就需要bracket来保证异常发生时,文件能被正确关闭。bracket的第一个参数一般是一开始做的事情,第二个是最后做的事情,第三个是中间做的事情。在读写文件中,一般性是打开文件 关闭文件 读写文件这么三个选项