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

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

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

作成日: 更新日:

基本的な使い方

readlinesメソッドは、StringIOオブジェクトが保持する文字列データを、1行ずつ読み込み、それらの行を要素とする配列として返すメソッドです。StringIOクラスは、メモリ上に存在する文字列をファイルであるかのように扱うための便利な機能を提供します。このreadlinesメソッドを利用することで、外部ファイルからの読み込み操作と同様に、メモリ上の文字列データを手軽に行単位で処理することが可能になります。

具体的には、StringIOオブジェクト内部の文字列データを改行文字 (\n) を区切りとして分解し、各行を新しい配列の要素として格納します。この際、各要素となる文字列には、行末の改行文字も含まれた状態となります。メソッドの実行後、StringIOオブジェクトの現在の読み込み位置(ファイルポインタ)は、文字列データの末尾、つまり全ての行を読み終えた位置へと移動します。そのため、再度呼び出すと読み込むデータがない場合は空の配列が返されます。

この機能は、外部ファイルにアクセスすることなく、プログラム内で生成された文字列データを行単位で処理したい場合や、テストコードにおいてファイル読み込みの挙動を模倣したい場合などに特に有用です。メモリ上のデータをファイルのように扱えるStringIOと、そのデータを効率的に読み出すreadlinesメソッドの理解は、システム開発における柔軟なデータ処理の基礎となります。

構文(syntax)

1require 'stringio'
2
3sio = StringIO.new("first line\nsecond line\nthird line")
4lines = sio.readlines
5# => ["first line\n", "second line\n", "third line"]

引数(parameters)

limit = nil, separator = $/

  • limit = nil: 読み込む行数の上限を指定します。nil の場合はすべての行を読み込みます。
  • separator = $/ : 行を区切る文字を指定します。デフォルトは改行文字 ($/) です。

戻り値(return)

Array

StringIO オブジェクトの readlines メソッドは、ファイルからすべての行を読み込み、各行を文字列として要素に持つ配列を返します。

関連コンテンツ

関連プログラミング言語