Rubyでのテキストファイルの読み込みのメモ
基本構造
File.open(”ファイルパス/ファイル名","読み書きモード:外部エンコーディング:内部エンコーディング") do |file| fileに対する操作 end
※:内部エンコーディング:内部エンコーディングの部分は、省略できる。
1.ファイルを一気に読み込む
File.open("test.txt","r") do |file| file = file.read fileに対する操作 end
2.ファイルを行ごとに読み込む
File.open("test.txt","r") do |file| file.each_line do | f| 行ごと(変数f)に対する操作 end end
3.書き込む
File.open("text.txt","w") do |file| file.puts text end
※変数textは書き込む内容
4.細かい説明
"r"や"w"の部分は書き込みモード
r | 読み込み |
w | 書き込み(ファイルがあるときは上書き) |
a | 書き込み(ファイルがあるときは追記 |
t | 改行文字のCR/LF/CRLFは全てLFとして読み込む。
上記r、w、aと合わせて指定する(File.open("test.txt","rt") do |file| |
(補足)エンコーディングについて
読み書きモード:外部エンコーディング:内部エンコーディングの順で表現できる。
読み書きモードがrt、外部エンコーディングsjis、内部エンコーディングutf-8の場合は以下となる。
File.open("test.txt","rt:sjis:utf-8") do |file| file = file.read fileに対する操作 end
外部エンコーディングはファイルを読み込むエンコード、
内部エンコーディングはターミナルで表示するときのエンコード
Windowsであれば、省略しても大丈夫そう。
MACだとか他は気にする必要がありそう。