環境
- Elixir 1.x
基本的な読み書き
File.write/2
で書き込み、 File.read/1
で読み込みできる。
iex> File.write "sample.txt", "Hello" :ok iex> File.read "sample.txt" {:ok, "Hello"}
読み込んだときに2要素のタプルを返してくるのがポイント
こういう感じで分岐できる
case File.read("sample.txt") do {:ok, content} -> IO.inspect content {:error, reason} -> IO.puts "error: #{reason}" end
追記したい
第三引数に append を渡す
iex> File.write "sample.txt", "Hello" :ok iex> File.write "sample.txt", " World", [:append] :ok iex> File.read "sample.txt"
エラー時に例外を発生させたい
関数名の最後にビックリマークをつける
iex> File.read! "404.txt" ** (File.Error) could not read file "404.txt": no such file or directory (elixir) lib/file.ex:310: File.read!/1