Должен ли я заботиться о том, закрыт ли файл?

Есть по-крайней мере четыре хороших способа убедиться в том, что файл закрыт:


  • Использовать close(не забывая обрабатывать исключения)

      f = open "file"
      begin
        f.each {|l| print l}
      ensure
        f.close
      end
    


  • Использовать блочную форму open

    File.open("file") do |f|
        f.readlines.each { |l| print l }
      end
    


  • Использовать foreach

    IO.foreach("file") {|l| print l}
    


  • Использовать readlines

    IO.readlines("file").each {|l| print l}