File.new
и File.open
по умолчанию используют режим чтения ('r'
) в качестве механизма безопасности, чтобы избежать возможной перезаписи файла. Мы должны явно указать Ruby использовать режим записи ('w'
- наиболее распространенный способ), если мы собираемся выводить в файл.
Если выводимый текст является строкой, а не записью:
File.open('foo.txt', 'w') { |fo| fo.puts "bar" }
или хуже:
fo = File.open('foo.txt', 'w')
fo.puts "bar"
fo.close
Используйте более краткий write
:
File.write('foo.txt', 'bar')
write
имеет разрешенные режимы, поэтому мы можем использовать 'w'
, 'a'
, 'r+'
при необходимости.
open
с блоком полезно, если вам нужно вычислить вывод в итеративном цикле и вы хотите оставить файл открытым, как вы это делаете. write
полезно, если вы собираетесь вывести содержимое за один раз, а затем закрыть файл.
См. документацию для получения дополнительной информации.