当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Ruby IO.eof用法及代码示例


本文简要介绍ruby语言中 IO.eof 的用法。

用法

eof → true or false
也别名为:eof?

如果流位于其末尾,则返回true,否则返回false;见位置:

f = File.open('t.txt')
f.eof           # => false
f.seek(0, :END) # => 0
f.eof           # => true

除非打开流进行读取,否则引发异常;参见模式。

如果 self 是管道或套接字等流,则此方法会阻塞,直到另一端发送一些数据或关闭它:

r, w = IO.pipe
Thread.new { sleep 1; w.close }
r.eof? # => true # After 1-second wait.

r, w = IO.pipe
Thread.new { sleep 1; w.puts "a" }
r.eof?  # => false # After 1-second wait.

r, w = IO.pipe
r.eof?  # blocks forever

请注意,此方法将数据读取到输入字节缓冲区。所以 IO#sysread 可能不会像你想要的那样表现 IO#eof? ,除非你先调用 IO#rewind (这对某些流不可用)。

我#eof?是 IO#eof 的别名。

相关用法


注:本文由纯净天空筛选整理自ruby-lang.org大神的英文原创作品 IO.eof。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。