我试图创建一个Tempfile并在其中写入一些文本。但我在控制台中得到了这个奇怪的行为
t = Tempfile.new("test_temp") # => #<File:/tmp/test_temp20130805-28300-1u5g9dv-0>
t << "Test data" # => #<File:/tmp/test_temp20130805-28300-1u5g9dv-0>
t.write("test data") # => 9
IO.read t.path # => ""
我也试过cat /tmp/test_temp20130805-28300-1u5g9dv-0
,但文件是空的。
我错过什么了吗?或者写Tempfile
的正确方法是什么?
我用的是Ruby 1.8.7
4条答案
按热度按时间gblwokeq1#
在写入临时文件后,您将需要关闭它。只需在末尾添加一个
t.close
。我打赌文件有缓冲输出。aoyhnmkz2#
请尝试在读取之前运行
t.rewind
u2nhd7ah3#
close
或rewind
实际上会将内容写入文件。您可能希望在使用以下命令后将其删除:3phpmpom4#
值得一提的是,调用
.rewind
是必须的,否则,任何后续的.read
调用都只会返回空值。