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

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

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

作成日: 更新日:

基本的な使い方

readpartialメソッドは、IOオブジェクトから指定された最大バイト数までのデータを読み込むメソッドです。このメソッドは、主にネットワークソケットやパイプのようなストリーム型のI/Oで、読み込みバイト数を厳密に制御したい場合に利用されます。まず、IOオブジェクトの内部バッファにデータが存在する場合、そのデータを優先的に読み込みます。内部バッファが空になった後、指定されたバイト数に満たない場合は、オペレーティングシステムから直接データを読み込もうとします。これにより、余分なデータを読み込みすぎることなく、必要な量だけを効率的に取得できます。

readpartialメソッドは、最大バイト数を指定する引数を受け取ります。また、読み込んだデータを格納するためのオプションのバッファも指定できます。データ終端(EOF)に到達した場合、それまでに読み込んだデータを返します。しかし、すでにEOFに達しており、読み込むべきデータが全くない状態でreadpartialを呼び出すと、EOFError例外が発生します。これは、これ以上データを読み込めない状態であることをプログラマに明確に伝えるための挙動です。システムエンジニアを目指す上で、このようなI/O制御の基本的な理解は非常に重要です。

構文(syntax)

1require 'stringio'
2
3io_object = StringIO.new("example data")
4data = io_object.readpartial(5)

引数(parameters)

maxlen, outbuf = nil

  • maxlen: 読み込む最大バイト数を指定する整数
  • outbuf = nil: 読み込んだデータを格納するバッファを指定するIOオブジェクト。指定しない場合は新しくIOオブジェクトが作成されます。

戻り値(return)

String

指定されたバイト数だけIOストリームから読み込んだ文字列を返します。読み込めるバイト数が指定バイト数より少ない場合でも、読み込めた内容を返します。

関連コンテンツ

関連プログラミング言語