Siv*_*iva 32 ruby file-io ruby-on-rails
我正在尝试创建一个Tempfile并将一些文本写入其中.但是我在rails控制台中遇到了这种奇怪的行为
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 # => ""
Run Code Online (Sandbox Code Playgroud)
我也试过,cat /tmp/test_temp20130805-28300-1u5g9dv-0但文件是空的
我错过了什么吗?或者写什么是正确的方法Tempfile?
仅供参考我使用的是ruby 1.8.7和rails 2.3.12
Deb*_*att 19
t.rewind在阅读之前尝试此运行
require 'tempfile'
t = Tempfile.new("test_temp")
t << "Test data"
t.write("test data") # => 9
IO.read t.path # => ""
t.rewind
IO.read t.path # => "Test datatest data"
Run Code Online (Sandbox Code Playgroud)
close或者rewind实际上会将内容写入文件.您可能希望在使用后删除它:
file = Tempfile.new('test_temp')
begin
file.write <<~FILE
Test data
test data
FILE
file.close
puts IO.read(file.path) #=> Test data\ntestdata\n
ensure
file.delete
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
38151 次 |
| 最近记录: |