新井です。

In message "[ruby-list:38510] ロックしたファイルの書き換え"
  on 12 Oct 2003 01:32:10 +0900,
  Akimichi Tatsukawa <akimichi / mbox.co.jp> wrote:
> ruby-listの皆さん、こんにちは。立川察理と申します。
> 基本的なことで恐縮なのですが、質問させてください。
> # ネットでうまく検索できないので。
> 質問は、ロックしたファイルを最初から全て書換えるにはどうすればよいのか、というものです。

File#truncate でどうでしょうか?

    File.open("/tmp/hogehoge", "w").puts "元もと書かれていた文字列"

    File.open("/tmp/hogehoge", "r+") do |file|
      file.flock(File::LOCK_EX)

      file.truncate(0)

      file.printf("%s\n","新たに書き込みたい文字列")
      file.flock(File::LOCK_UN)
    end

    p File.read("/tmp/hogehoge")

=> ruby 1.8.0 (2003-10-10) [i586-linux]
   "新たに書き込みたい文字列\n"