我正在学习 Ruby,现在正在搞乱读/写文件。当我创建文件“文件名”时,我可以使用 .write() 方法对其进行写入。但是,在运行 .read() 之后,如果不重新打开它,我就无法将内容输出到终端(参见第 8 行:)puts write_txt.read()
。我曾多次尝试运行第 8 行,但所做的只是输出更多的空白行。没有第 8 行,puts txt.read()
只输出一个空行。以下代码也可以puts
在没有第 8 行的情况下工作(简单write_txt.read()
)
# Unpacks first argument to 'filename'
filename = ARGV.first
# Lets write try writing to a file
write_txt = File.new(filename, 'w+')
write_txt.write("OMG I wrote this file!\nHow cool is that?")
# This outputs a blank line THIS IS THE LINE IN QUESTION
puts write_txt.read()
txt = File.open(filename)
# This actually outputs the text that I wrote
puts txt.read()
为什么这是必要的?为什么已经明确写入的文件被读取为空白,直到它被读取为空白至少一次后重新打开?