RubyのStringIOはいつ役にたつの

スポンサーリンク

RubyのStringIOっていつ使うの?

StringIOはオブジェクトに溜め込むことができます。
StringIOは文字列をファイルのように扱うこともできます。

□StringIOのメソッド

  • .readメソッド
  • .writeメソッド
スポンサーリンク

StringIOのファイルポインタってなに?

ioクラスにもStringIOクラスにもファイルポインタという概念があります。

ファイルポインタ

上の画像はファイルポインタを示した画像です。ファイルポインタとは文字のところで点滅しているやつのことを言っています。RubyのStringIOを使うとこのファイルポインタをプログラムで操作できるというわけです。

readしたときもwriteしときもファイルポインタが動きます。sio.readしたあとにsio.readすると何も表示されなくなります。ですのでrewindというメソッドで先頭に戻してやる必要があります。

require "stringio"
sio = StringIO.new("taguti,fkoji")
p sio.read#stringioを読みこむ。 readlinesは使えない
p sio.rewind#ファイルポインタを先頭に戻す
p sio.write("hello!")#こちらを書きおえたときにはファイルポインタは書き終えた位置にいる
p sio.rewind#ファイルポインタを先頭に戻す
p sio.read#先頭にした状態で読み込むことで正常に読み込むことができる

StringIOがいつ役に立つのかという点についてですが、わたしもよくわかりませんでした。

コメント

タイトルとURLをコピーしました