Ruby:Simple Creating&写一个新文件

时间:2017-09-22 18:05:13

标签: ruby

我可以在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)

2 个答案:

答案 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通常喜欢做的事情。