Haskell:
一時ファイルの作成
How to: (方法)
import System.IO.Temp (withSystemTempFile)
import System.IO (hPutStrLn, hClose)
-- 一時ファイルを生成して使用するサンプル
main :: IO ()
main = withSystemTempFile "mytemp.txt" $ \filePath handle -> do
-- ファイルに内容を書き込む
hPutStrLn handle "一時ファイルの中身だよ"
-- 必要な操作をここで実行
-- ...
putStrLn $ "一時ファイル作成:" ++ filePath
-- withSystemTempFile はファイルを自動的に閉じる
出力サンプル:
一時ファイル作成:/tmp/mytemp.txt123456
Deep Dive (掘り下げ)
一時ファイルは古くから使われ、ディスクに一時的なデータを書いて使います。System.IO.Temp
は安全に一時ファイルを取り扱うためのHaskellライブラリです。関数withSystemTempFile
はファイルを自動的に削除するので、一時ファイルを掃除する手間が省けます。
他の方法としては openTempFile
や createTempDirectory
などがあります。これらは一時ファイルやディレクトリをより細かくコントロールするために使われますが、後始末が必要になる場合があります。
実装の詳細では、withSystemTempFile
や類似の関数は内部的に一意なファイルネームを生成し、アトミックにファイルを作成することで競合を避けます。安全性と一意性は一時ファイルを作る際の重要な特性です。
See Also (関連情報)
- Haskellの公式ドキュメント: https://www.haskell.org/documentation/
System.IO.Temp
モジュールに関するドキュメント: https://hackage.haskell.org/package/temporary-1.3/docs/System-IO-Temp.html- IO ライブラリに関する情報: https://hackage.haskell.org/package/base/docs/System-IO.html