ファイル読み込み
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