落書きノート

ふと自分が気になった事を書いてます

Ruby ファイル処理 ファイルポインタを先頭に移動させる

Rubyでのファイル処理です。

main.rb

File.open("data.txt") do |io|
  while not io.eof?
    print io.read(1)
    io.seek(0, IO::SEEK_SET)
  end
end

data.txt

[code language=“text”] abcdefg

このプログラムはファイルから文字列の終わりまで1文字ずつ読み込んで出力します。io.read(1)の部分ですね。そこからseek<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E1%A5%BD%A5%C3%A5%C9">メソッド</a>でファイルポインタを先頭に移動させています。従って、aという文字がずっと無限に出力されるようになります。

実践で役に立つプログラムというわけではありませんが、知識として知っておくと良いのではないでしょうか。実際、このプログラムは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Ruby">Ruby</a>の資格問題集に出てきていますし、勉強しておけば資格が取得できるようになるかもしれませんね。個人的には、勉強しているだけでも楽しいとは思いますが。