zoukankan      html  css  js  c++  java
  • Haskell语言学习笔记(19)File IO

    关于IO Action

    • 类型为IO t。
    • 运算时不执行,因而没有任何效果,只有执行时才会有效果,产生副作用。
    • 一个IO Action只有在其他IO Action中才能被执行。
    • 类型为IO t的IO Action被执行后的结果类型为t。

    File IO 函数

    • openFile hClose 打开和关闭文件
      readMode, writeMode, readwriteMode, appendMode
    • hTell hSeek 文件当前读取位置
      AbsoluteSeek, RelativeSeek, SeekFromEnd
    • withFile 用回调函数读取文件
    • readFile writeFile 直接读取写入文件
    import System.IO
    
    inputPath = "input.txt"
    openFile1 = do
        handle <- openFile inputPath ReadMode
        contents <- hGetContents handle
        putStr contents
        hClose handle
    withFile1 = do
        withFile inputPath ReadMode (\handle -> do
            contents <- hGetContents handle
            putStr contents)
    readFile1 = do
        contents <- readFile inputPath
        putStr contents
    

    以上代码使用三种不同的方法从文件中读取内容并打印到屏幕上。

    UTF-8文件的读写

    readWriteUTF8File = do
        inputHandle <- openFile inputPath ReadMode 
        hSetEncoding inputHandle utf8
        theInput <- hGetContents inputHandle
        outputHandle <- openFile outputPath WriteMode
        hSetEncoding outputHandle utf8
        hPutStr outputHandle $ map toUpper theInput
        hClose inputHandle
        hClose outputHandle
    

    UTF-8文件的读写(2)

    安装 extra 模块。

    $ cabal install extra
    Installed extra-1.6
    
    import Extra
    readWriteUTF8File' = do
        theInput <- readFileEncoding inputPath utf8
        writeFileEncoding utf8 outputPath $ upper theInput
    
  • 相关阅读:
    使用Strust2框架写HelloWorld
    MyEclipse10搭建Strust2开发环境
    MyEclipse使用总结——在MyEclipse中设置jsp页面为默认utf-8编码
    HTML一些标签注意事项
    Spring常用注解
    VB.NET中Module的概念
    vs2008发布项目失败的解决方法
    Java开发中的一些小技巧
    DNS服务器
    关于在Struts2的Action中使用domain模型接收参数的问题
  • 原文地址:https://www.cnblogs.com/zwvista/p/6820482.html
Copyright © 2011-2022 走看看