我可以在Ruby中创建一个文本文件,但我当前的代码不允许我写入该新文件。任何帮助将不胜感激。
newfilename = "16.Sample2.txt"
line1 = "BOOYAH"
out_file = File.new(newfilename, "w")
out_file.close
out_file = open(filename, 'w')
out_file.write(line1)
答案 0 :(得分:0)
16.Sample2.txt
而没有在其中书写(因此它已创建但保留为空)filename
不是
定义让我们试试这个
newfilename = "16.Sample2.txt"
line1 = "BOOYAH"
out_file = File.new(newfilename, "w")
out_file.write(line1)
out_file.close
答案 1 :(得分:0)
您的代码中唯一真正的错误是您不小心输入了filename
而不是newfilename
。进行简单的更改,此代码将完美运行:
newfilename = "16.Sample2.txt"
line1 = "BOOYAH"
out_file = File.new(newfilename, "w")
out_file.close
out_file = open(newfilename, "w")
out_file.write(line1)
话虽如此,你可以让这段代码变得更好。 open()
是一种通用方法,允许您打开任何IO流,包括文件和进程管道。 File.open()
是处理文件的更好方法。如果文件不存在,它将自动创建一个文件,因此您可以简化代码:
newfilename = "16.Sample2.txt"
line1 = "BOOYAH"
out_file = File.open(newfilename, "w")
out_file.write(line1)
out_file.close
但等等,它变得更好!如果您将一个块传递给File.open()
,它将自动关闭该块末尾的文件,因此您不必记得关闭它!
newfilename = "16.Sample2.txt"
line1 = "BOOYAH"
File.open(newfilename, "w") do |out_file|
out_file.write(line1)
end
将File.open
与块一起使用是经验丰富的rubyists通常喜欢做的事情。