感謝のプログラミング 10000時間

たどり着いた結果(さき)は、感謝でした。

ファイルを作成したり、最後にデータを追加する

<スポンサーリンク>

Rubyで新しいファイルを作成するには、File.open("ファイル名","w")とする。
すでに存在している場合はそのファイルを開く。
で、"w"というのは、ファイルの内容をいったん空にする。
で、もしファイルがなければ新しいファイルを作る。

wのオプションについての説明。

Write-only, truncates existing file
to zero length or creates a new file for writing.

http://stackoverflow.com/questions/3682359/what-are-the-ruby-file-open-modes-and-options

では、とりあえず空のファイルを作って、軽く文字を追加してみよう。

# coding: utf-8
require 'fileutils'

File.open("sample.txt","w") do |file|
  file.puts("hoge")
  file.puts("fuga")
end

FileUtils.touch("yahoo.txt")

これを実行すると、sample.txtとyahoo.txtというのができる。
sample.txtにはhogeとfugaが書き込まれている。

$ cat sample.txt 
hoge
fuga

で、上の例で作ったsample.txtに1行追記してみよう。
そういうときは、File.open("sample.txt","a")を使う。
"a"オプションは、

Write-only, starts at end of file if file exists,
otherwise creates a new file for writing.

ファイルがなければ新しいファイルを作成して、ファイルがあったら、ファイルの末尾からスタートする。
というのが"a"の機能だ。

# coding: utf-8

File.open("sample.txt","a") do |file|
  file.puts "最後に追加!"
end

これを実行すると、

~/dev/ruby $ cat sample.txt 
hoge
fuga
最後に追加!

というように、末尾に追記することができた。