我正在尝试创建一个新文件,事情似乎并不像我期望的那样工作。以下是我的尝试:
File.new "out.txt"
File.open "out.txt"
File.new "out.txt","w"
File.open "out.txt","w"
根据我在网上读到的所有东西,所有这些都应该有用,但每一个都给了我这个:
ERRNO::ENOENT: No such file or directory - out.txt
这可以从IRB和Ruby脚本中实现。我错过了什么?
我正在尝试创建一个新文件,事情似乎并不像我期望的那样工作。以下是我的尝试:
File.new "out.txt"
File.open "out.txt"
File.new "out.txt","w"
File.open "out.txt","w"
根据我在网上读到的所有东西,所有这些都应该有用,但每一个都给了我这个:
ERRNO::ENOENT: No such file or directory - out.txt
这可以从IRB和Ruby脚本中实现。我错过了什么?
当前回答
data = 'data you want inside the file'.
您可以使用File。写入('文件名在这里',数据)
其他回答
试着用“w+”而不是“w”作为写模式:
File.open("out.txt", "w+") { |file| file.write("boo!") }
如果目标只是创建一个文件,我认为最直接的方法是:
FileUtils.touch "foobar.txt"
Use:
File.open("out.txt", [your-option-string]) {|f| f.write("write your stuff here") }
你的选择是:
r -只读。文件必须存在。 w -创建一个空文件进行写入。 a -附加到文件中。如果文件不存在,则创建该文件。 r+ -打开文件进行读写更新。文件必须存在。 w+ -创建一个空文件用于读和写。 a+ -打开文件进行读取和追加操作。如果文件不存在,则创建该文件。
在你的情况下,'w'更可取。
或者你可以这样写:
out_file = File.new("out.txt", "w")
#...
out_file.puts("write your stuff here")
#...
out_file.close
好吧,现在我觉得自己很蠢。前两个肯定不行,但后两个可以。不知道我是怎么说服自己我已经试过了。抱歉浪费了大家的时间。
为了帮助其他人,当您试图在不存在的目录中创建新文件时,可能会发生这种情况。
data = 'data you want inside the file'.
您可以使用File。写入('文件名在这里',数据)