當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Ruby IO.eof?用法及代碼示例


本文簡要介紹ruby語言中 IO.eof? 的用法。

用法

eof?()
別名: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?。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。