ios.eof? â true or false
Instance Public methods
Returns true if ios is at end of file that means there are no more
data to read. The stream must be opened for reading or an
IOError
will be raised.
f = File.new("testfile") dummy = f.readlines f.eof #=> true
If ios is a stream such as pipe or socket, IO#eof?
blocks until the other end sends some data or closes it.
r, w = IO.pipe Thread.new { sleep 1; w.close } r.eof? #=> true after 1 second blocking r, w = IO.pipe Thread.new { sleep 1; w.puts "a" } r.eof? #=> false after 1 second blocking r, w = IO.pipe r.eof? # blocks forever
Note that IO#eof?
reads data to the input byte buffer. So
IO#sysread
may not behave as you intend with
IO#eof?
, unless you call IO#rewind
first (which
is not available for some streams).
Please login to continue.