ファイル読み込み
ReadModeによるファイル読み込み
Haskellにおいてのファイル読み込みはopenFile
関数を使用します。
子の関数を使用するためには、System.IO
を事前にimportしておく必要があります。
以下のサンプルコードでは、input.txt
ファイルを読み取り専用で開き、inpStr
変数に格納しています。
import System.IO import Data.Char(toUpper) main :: IO () main = do inh <- openFile "input.txt" ReadMode inpStr <- hGetLine inh print(inpStr) hClose inh
WriteModeによるファイル書き込み
Haskellにおける基本的なファイルの書き込みは読み込み同様openFile
関数を使用します。
ただし、WriteMode
でファイルオープンしなければ書き込めないことに注意してください。
import System.IO import Data.Char(toUpper) main :: IO () main = do outh <- openFile "output.txt" WriteMode hPutStrLn outh "input string" hClose outh
より簡単なreadFile
とwriteFile
readFileによるファイル読み込み
openFile
とhGetLine
を組み合わせた関数がreadFile
関数である。
ファイルハンドラーをオープンする必要がなく、シンプルな関数となっている。
import System.IO main = do contents <- readFile "input.txt" putStrLn contents
writeFileによるファイル書き込み
これも、ファイルハンドラーをオープンせずにファイルを書き込むための関数である。
import System.IO main = do contents = "this is test" writeFile "output.txt" contents