プログラミングノート

一からものを作ることが好きなエンジニアの開発ブログです。

ファイル操作を試してみる

よく使いそうな処理だけ調べてみたところ、ファイル関連はFile、FileUtil辺りを探せばやりたい事が一通り出来そうな感じ。簡単にまとめたのがこちら。

require 'FileUtils'
fname = "test.txt"

# ファイルチェック
if File.exist?(fname)
  # ファイルオープン
  open(fname) { |fp|
    puts fp.read
  }
  # ファイルコピー
  FileUtils.cp(fname, fname+"_bk")
  # ファイル削除
  FileUtils.rm(fname)
else
  # ファイル作成
  open(fname, "w"){ |fp|
    fp.puts "test1\n"
    fp.puts "test2\n"
  }	
end

open()はブロックで処理すると自動でクローズされる。
⇒ ブロックを利用しない場合は、下記のように記述。

fp = open(fname)
fp.each do |line|
  puts line
end
fp.close

ついでにCSVファイルも処理してみた。

open("test.csv") { |fp|
  fp.each { |line|
    line.split(',').each { |field|
      print field
    }
  }
}

Ruby楽ですね。
慣れてくるとやりたいことが簡単に出来そうな予感。

メモ

open(ファイル, モード)

r 読み込み
r+ 読み書き
w 新規作成
w+ 新規作成読み書き
a 追加書き込み
a+ 追加書き込み読み書き

これ以外にバイナリモードもある