singleton method StringIO.new

new(string = '', mode = 'r+') -> StringIO[permalink][rdoc][edit]
open(string = '', mode = 'r+') -> StringIO
open(string = '', mode = 'r+') {|io| ... } -> object

StringIO オブジェクトを生成して返します。

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

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


require 'stringio'

s = "foo"
io = StringIO.new(s)
p io.getc       # => 102
p io.pos        # => 1
p io.size       # => 3
io << "bar"   
p io.size       # => 4
p s             # => "fbar"
io.rewind
p io.gets       # => "fbar"

StringIO.open("hoge"){|io|
  p io.string   # => "hoge"
}