Ruby でファイルに書き込む

Nurudeen Ibrahim 2022年4月18日
Ruby でファイルに書き込む

Ruby の File クラスには、ファイルに書き込むための write() メソッドがあります。このメソッドは、書き込まれた長さを返し、ファイルが自動的に閉じられるようにします。以下の構文があります。

File.write('/your/file/path', 'Message content')

簡単なメッセージをファイルに書いてみましょう。

File.write('my-file.txt', 'A simlpe message.')

上記のコードは、my-file.txt というファイルがまだ存在しない場合に作成するのに役立ち、ファイルに A simlpe message. を書き込むことができます。ファイルがすでに存在する場合、コードはファイルとその内容を上書きします。

Ruby は、ファイルコンテンツを上書きする代わりに、mode オプションを指定してコンテンツに追加する方法を提供します。例を以下に示します。

File.write("my-file.txt", " Another simple message\n", mode: 'a')

上記の例の\n は改行文字であり、このファイルに書き込む次のメッセージは次の行に移動する必要があることを意味します。これを確認するために別のメッセージを書いてみましょう。

File.write("my-file.txt", "This message should go on the next line", mode: 'a')

上記の説明を要約する方法として、5 行のテキストをファイルに書き込む簡単なプログラムを書いてみましょう。

todos = [
  "wake up, shower, and leave for work",
  "Pick up John from school",
  "Meet with team to practice presentation",
  "Dinner with friends",
  "Relax and bedtime."
]

todos.each_with_index do |todo, index|
  File.write("todo-list.txt", "#{index + 1}. #{todo}\n", mode: 'a')
end

以下は、プログラム実行後の todo-list.txt ファイルの内容です。

出力:

1. wake up, shower, and leave for work
2. Pick up John from school
3. Meet with team to practice presentation
4. Dinner with friends
5. Relax and bedtime.