Ruby 2.6.0 リファレンスマニュアル > ライブラリ一覧 > stringioライブラリ > StringIOクラス > reopen

instance method StringIO#reopen

reopen(sio) -> StringIO[permalink][rdoc]

自身が表す文字列が指定された StringIO と同じものになります。

[PARAM] sio:
自身が表したい StringIO を指定します。

例:

require 'stringio'
sio = StringIO.new("hoge", 'r+')
sio2 = StringIO.new("foo", 'r+')
sio.reopen(sio2)
p sio.read                       #=> "foo"
reopen(str, mode = 'r+') -> StringIO[permalink][rdoc]

自身が表す文字列が指定された文字列 str になります。

与えられた str がフリーズされている場合には、mode はデフォルトでは読み取りのみに設定されます。ブロックを与えた場合は生成した StringIO オブジェクトを引数としてブロックを評価します。

[PARAM] str:
自身が表したい文字列を指定します。この文字列はバッファとして使われます。StringIO#write などによって、 str 自身も書き換えられます。
[PARAM] mode:
Kernel.#open 同様文字列か整数で自身のモードを指定します。
[EXCEPTION] Errno::EACCES:
str がフリーズされていて、mode が書き込み可能に設定されている場合に発生します。

例:

require 'stringio'
sio = StringIO.new("hoge", 'r+')
sio.reopen('foo')
p sio.read                      #=> "foo"