Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】IO::each_byte()メソッドの使い方

each_byteメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

each_byteメソッドは、IOクラスのオブジェクトからデータを1バイトずつ読み込み、それを順次処理するメソッドです。ファイルやネットワーク接続といったIOストリームのデータ処理に利用されます。

このメソッドにブロックを渡すと、ストリームから読み込まれた各バイトが0から255の整数値として順にブロックに渡されます。これにより、ファイルのバイト内容検査、特定のバイト列検索など、バイト単位でデータ処理できます。エンコーディング非依存でテキストやバイナリデータの解析に適しています。

ブロックを渡さずにeach_byteメソッドを呼び出すと、Enumeratorオブジェクトを返します。これは、読み込みを遅延させ、Enumerableモジュールのmapselectなどと組み合わせて、柔軟なデータ操作が可能です。

each_byteメソッドは、文字エンコーディングを意識せず、データをバイト単位で直接操作したい場合に有効です。バイナリファイルの読み込みや低レベルなデータ処理に役立ちます。

構文(syntax)

1require 'stringio'
2
3input_source = StringIO.new("Hello Ruby")
4
5input_source.each_byte do |byte_integer|
6  # byte_integer は 0 から 255 までの整数
7  # 例えば、ASCII 'H' の場合は 72
8  puts byte_integer
9end

引数(parameters)

引数なし

引数はありません

戻り値(return)

IO

IOオブジェクト自身を返します。これにより、メソッドチェーンで他のIO操作を連続して実行できます。

関連コンテンツ

関連プログラミング言語