Haskell のファイルの読み出し書き込み

Haskell のファイルの読み出しは普通のプログラムだ。ファイル名を取得し、ファイル名からファイルハンドルを取得し、ファイルハンドルから内容を読みだす。Haskell といえども入出力は普通の手続き型のプログラムと一緒だ。ただし、do 関数の後にアクションを並べるところが違うくらい。

readfile.hs ファイルを読みだして表示するプログラム。

import IO

main = do putStr "filename: "
             fname <- getLine
             fromHandle <- openFile fname ReadMode
             contents <- hGetContents fromHandle
             putStr contents
             hClose fromHandle

実行例

Main> :e readfile.hs
Main> :l readfile.hs
Main> main
filename: readfile.hs
import IO

main = do putStr "filename: "
             fname <- getLine
             fromHandle <- openFile fname ReadMode
             contents <- hGetContents fromHandle
             putStr contents
             hClose fromHandle

書き込み用のファイルを開くときは openFile 関数のモードを WriteMode にする。書き込みには putStr ではなく、hPutStr アクションを使う。
[PR]
by tnomura9 | 2009-08-10 18:19 | Haskell | Comments(0)
<< Haskell 木で遊ぶ Haskell でユーザ定義の... >>