.rewind方法对ruby中的Tempfile有什么作用?

时间:2018-01-30 20:35:46

标签: ruby-on-rails ruby stringio

我查看了these docs和Google,在上下文中似乎无法找到.rewind的目的,以及它与.close的区别使用Tempfile

另外,为什么.read在倒带前返回一个空字符串?

以下是一个例子:

file = Tempfile.new('foo')
file.path      # => A unique filename in the OS's temp directory,
               #    e.g.: "/tmp/foo.24722.0"
               #    This filename contains 'foo' in its basename.
file.write("hello world")
file.rewind
file.read      # => "hello world"
file.close
file.unlink    # deletes the temp file

1 个答案:

答案 0 :(得分:10)

快退 - 在ruby docs

上详细了解相关信息

IO#关闭 - 详细了解ruby docs

阅读 - 详细了解ruby docs

<强> 摘要

  

<强> rewind
  将ios定位到输入的开头,将lineno重置为零。   倒带将行号重置为零

f = File.new("testfile")
f.readline   #=> "This is line one\n"
f.rewind     #=> 0
f.lineno     #=> 0
f.readline   #=> "This is line one\n"
  

<强> IO#close
  关闭ios并刷新任何挂起的操作写入   系统

     

read([长[,outbuf]])

     

从I / O流中读取长度字节。长度必须是非负整数或零。 如果长度为零,则返回空字符串(“”)。