【Ruby3.x】IO::eof?()メソッドの使い方
eof?メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
eof?メソッドは、IOクラスのインスタンスに対して、データの読み込みカーソルが入力ストリームの終端(End Of File)に到達したかどうかを確認するメソッドです。ファイルやネットワークソケットといった入力元からデータを処理する際に、これ以上読み込むデータが存在しないかを判断するために使用されます。
具体的には、入力ストリームの全てのデータが既に読み込まれており、読み込みカーソルが終端にある場合に真(true)を返します。例えば、ファイルから内容を一行ずつ読み出すループ処理において、いつ読み込みを終了すべきかを判断する重要な条件として利用されます。データを読み進め、最後に読み込みメソッドがnilを返したり、空のデータを返した後にこのメソッドを呼び出すとtrueとなります。
一方で、まだ読み込むべきデータが残っている場合や、ストリームが閉じられている場合は偽(false)を返します。このメソッドを適切に利用することで、データの終端を正確に検知し、不必要な読み込み処理や無限ループの発生を防ぐことができます。ファイルやその他のデータストリームを扱うプログラムにおいて、堅牢で効率的なデータ処理を実装するために不可欠な機能の一つです。
構文(syntax)
1File.open("sample.txt", "w") do |f| 2 f.puts "Hello" 3 f.puts "World" 4end 5 6file = File.open("sample.txt", "r") 7file.gets 8puts file.eof? 9file.gets 10puts file.eof? 11file.gets 12puts file.eof? 13file.close 14File.delete("sample.txt")
引数(parameters)
引数なし
引数はありません
戻り値(return)
Boolean
ファイルやIOストリームの末尾に到達したかどうかを真偽値で返します。ファイルの終端に達している場合は true を、そうでない場合は false を返します。