Ruby でFile.open do 後のreadに注意!

RubyでFile.open do の中でreadで読み込む時にうまく文字列が取れない。どうなってるの?

Ruby File.openでreadを使う

File.open("text.txt", "r") do |f|
 p f.read
 p f.read
end 

上記のように書くと1回目のreadは文字列が取得できるが2回目のreadは文字列が取得できない。

File.open("text.txt", "r") do |f|
 text = f.read
 p text
 p text
end 

このように書くと1回目、2回目でも文字列が取得できる。

readの使用タイミングは考えながら処理をしないと想定外の動きになりそうですね!

何か参考になれば幸いです(*^^*)