未分類

Ruby ファイルの読み込み、書き込み(File.open)

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だとか他は気にする必要がありそう。

-未分類