A File is an abstraction of any file object accessible by the program and is closely associated with class IO . File includes the methods of module FileTest as class methods, allowing you to write (for example) File. exist?("foo") .
Use:
File.open("out.txt", [your-option-string]) {|f| f.write("write your stuff here") }
where your options are:
r
- Read only. The file must exist. w
- Create an empty file for writing. a
- Append to a file.The file is created if it does not exist. r+
- Open a file for update both reading and writing. The file must exist. w+
- Create an empty file for both reading and writing. a+
- Open a file for reading and appending. The file is created if it does not exist. In your case, 'w'
is preferable.
OR you could have:
out_file = File.new("out.txt", "w")
#...
out_file.puts("write your stuff here")
#...
out_file.close
Try
File.open("out.txt", "w") do |f|
f.write(data_you_want_to_write)
end
without using the
File.new "out.txt"
Try using "w+"
as the write mode instead of just "w"
:
File.open("out.txt", "w+") { |file| file.write("boo!") }
OK, now I feel stupid. The first two definitely do not work but the second two do. Not sure how I convinced my self that I had tried them. Sorry for wasting everyone's time.
In case this helps anyone else, this can occur when you are trying to make a new file in a directory that does not exist.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With