How to write to file in Ruby? How to write to file in Ruby? ruby ruby

How to write to file in Ruby?


Are you looking for the following?

File.open(yourfile, 'w') { |file| file.write("your text") }


You can use the short version:

File.write('/path/to/file', 'Some glorious content')

It returns the length written; see ::write for more details and options.

To append to the file, if it already exists, use:

File.write('/path/to/file', 'Some glorious content', mode: 'a')


This is preferred approach in most cases:

 File.open(yourfile, 'w') { |file| file.write("your text") }

When a block is passed to File.open, the File object will be automatically closed when the block terminates.

If you don't pass a block to File.open, you have to make sure that file is correctly closed and the content was written to file.

begin  file = File.open("/tmp/some_file", "w")  file.write("your text") rescue IOError => e  #some error occur, dir not writable etc.ensure  file.close unless file.nil?end

You can find it in documentation:

static VALUE rb_io_s_open(int argc, VALUE *argv, VALUE klass){    VALUE io = rb_class_new_instance(argc, argv, klass);    if (rb_block_given_p()) {        return rb_ensure(rb_yield, io, io_close, io);    }    return io;}