動かざることバグの如し

近づきたいよ 君の理想に

Elixirでファイルの読み書きまとめ

環境

  • 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