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

class StringIO

クラスの継承リスト: StringIO < Data < Object < Kernel < BasicObject

要約

文字列に IO と同じインタフェースを持たせるためのクラスです。

例:

require "stringio"
sio = StringIO.new("hoge", 'r+')
p sio.read                 #=> "hoge"
sio.rewind
p sio.read(1)              #=> "h"
sio.write("OGE")
sio.rewind
p sio.read                 #=> "hOGE"

例外

StringIO オブジェクトは大抵の場合 IO オブジェクトと同じ例外を発生させます。 例えば次の例では write は IOError を発生させます。

require "stringio"
sio = StringIO.new("hoge")
sio.close
sio.write("a")
# => in `write': not opened for writing (IOError)

特異メソッド

定義 説明
new(string = '', mode = 'r+') -> StringIO
open(string = '', mode = 'r+') -> StringIO
open(string = '', mode = 'r+') {|io| ... } -> object

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

インスタンスメソッド

定義 説明
self << obj -> self

obj を pos の位置に書き込みます。 必要なら obj.to_s を呼んで 文字列に変換します。 self を返します。

binmode -> self

何もせずに self を返します。

each_byte {|ch| ... } -> self
bytes {|ch| ... } -> self
each_byte -> Enumerator
bytes -> Enumerator

自身から 1 バイトずつ読み込み、整数 ch に変換し、それを引数として与えられたブロックを実行します。

each_char {|c| ... } -> self
chars {|c| ... } -> self
each_char -> Enumerator
chars -> Enumerator

自身に含まれる文字を一文字ずつブロックに渡して評価します。

close -> nil

自身を close します。以後、自身に対する読み書きが禁止されます。 close された StringIO に読み書き等が行われると IOError が発生します。

close_read -> nil

自身に対する読み取りを禁止します。

close_write -> nil

自身に対する書き込みを禁止します。

closed? -> bool

自身が既に close されていた場合に true を返します。そうでない場合は、false を返します。

closed_read? -> bool

自身に対する読み取りが禁止されているなら true を返します。そうでない場合は、false を返します。

closed_write? -> bool

自身に対する書き込みが禁止されているなら true を返します。そうでない場合は、false を返します。

codepoints {|codepoint| ... } -> self
codepoints -> Enumerator
each_codepoint {|codepoint| ... } -> self
each_codepoint -> Enumerator

自身の各コードポイントに対して繰り返します。

each(rs = $/) {|line| ... } -> self
each_line(rs = $/) {|line| ... } -> self
lines(rs = $/) {|line| ... } -> self
each(rs = $/) -> Enumerator
each_line(rs = $/) -> Enumerator
lines(rs = $/) -> Enumerator

自身から 1 行ずつ読み込み、それを引数として与えられたブロックを実行します。

eof -> bool
eof? -> bool

自身の pos が文字列の終端にあれば true を返します。そうでないなら false を返します。

external_encoding -> Encoding

現在の外部エンコーディングを返します。

fcntl -> ()

例外 NotImplementedError が常に発生します。

fileno -> nil

何もせず nil を返します。

flush -> self

何もせずに self を返します。

fsync -> 0

何もせずに 0 を返します。

getbyte -> Integer | nil

自身から 1 文字読み込んで、その文字に対応する Fixnum を返します。 文字列の終端に到達した時には nil を返します。

getc -> String | nil

自身から 1 文字読み込んで、その文字を返します。 文字列の終端に到達した時には nil を返します。

gets(rs = $/) -> String | nil

自身から 1 行読み込んで、その文字列を返します。文字列の終端に到達した時には nil を返します。 $_ に読み込んだ行がセットされます。

internal_encoding -> Encoding

現在の内部エンコーディングを返します。

isatty -> false

何もせず false を返します。

size -> Integer
length -> Integer

文字列の長さを返します。

lineno -> Integer

現在の行番号を返します。これは StringIO#gets が呼ばれた回数です。

lineno=(n)

現在の行番号を n にセットします。

pid -> nil

何もせず nil を返します。

pos -> Integer
tell -> Integer

自身の現在の位置を返します。

pos=(n)

自身の位置を n に移動します。自身が表す文字列のサイズより大きくても構いません。

print() -> nil
print(*obj) -> nil

自身に引数を順に出力します。引数を省略した場合は、$_ を出力します。 引数の扱いは Kernel.#print を参照して下さい。

printf(format, *obj) -> nil

指定されたフォーマットに従い各引数 obj を文字列に変換して、自身に出力します。

putc(ch) -> object

文字 ch を自身に書き込みます。 ch が数字なら 0 〜 255 の範囲の対応する文字書き込みます。 ch が文字列なら、その先頭の文字を書き込みます。ch を返します。

puts(*obj) -> nil

obj と改行を順番に自身に出力します。引数がなければ改行のみを出力します。 詳しい仕様は Kernel.#puts を参照して下さい。

read -> String
read(len) -> String | nil
read(len, outbuf) -> String

自身から len バイト読み込んで返します。len が省略された場合は、最後まで読み込んで返します。 詳しい仕様は IO#read を参照して下さい。

read_nonblock(maxlen, outbuf = nil, exception: true) -> String | nil

StringIO#readに似ていますが、 exception オプションに false を指定すると EOFError を発生させず nil を返します。

readchar -> Integer
readbyte -> Integer

自身から 1 文字読み込んで、その文字に対応する整数を返します。

readline(rs = $/) -> String

自身から 1 行読み込んで、その文字列を返します。

readlines(rs = $/) -> [String]

自身からデータを全て読み込んで、その各行を要素としてもつ配列を返します。 既に文字列の終端に達していれば空配列 [] を返します。

sysread -> String
sysread(len) -> String
sysread(len, outbuf) -> String
readpartial -> String
readpartial(len) -> String
readpartial(len, outbuf) -> String

自身から len バイト読み込んで返します。 StringIO#read と同じです。ただし、文字列の終端に達した場合、EOFError を投げます。

reopen(sio) -> StringIO

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

reopen(str, mode = 'r+') -> StringIO

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

rewind -> 0

自身の pos と lineno をそれぞれ 0 にします。

seek(offset, whence = IO::SEEK_SET) -> 0

自身の pos を whence の位置から offset バイトだけ移動させます。

set_encoding(ext_enc) -> self
set_encoding(ext_enc, int_enc) -> self
set_encoding(ext_enc, int_enc, opt) -> self

自身のエンコーディングを指定されたエンコーディングに設定します。

string -> String

自身が表す文字列を返します。

string=(buf)

自身が表す文字列を指定された buf に変更します。

sync -> true

何もせずに true を返します。

sync=(bool)

何もせずに bool を返します。

syswrite(obj) -> Integer
write_nonblock(obj) -> Integer

自身に obj を書き込みます。StringIO#write と同じです。

truncate(len) -> Integer

自身のサイズが len になるように、自身を切り詰め、もしくは拡大します。 拡大した場合は、その部分を 0 で埋めます。 len を返します。

tty? -> false

何もせず false を返します。

ungetbyte(char) -> nil

指定された char を読み戻します。

ungetc(str_or_int) -> nil

文字列か整数で指定された str_or_int を自身に書き戻します。 nil を返します。

write(obj) -> Integer

自身に obj を書き込みます。obj が文字列でなければ to_s による文字列化を試みます。 書き込まれた文字列の長さを返します。

継承したメソッド

! != __id__ instance_eval instance_exec singleton_method_added singleton_method_removed singleton_method_undefined !~ <=> == === =~ __send__ _dump class clone define_singleton_method display enum_for eql? equal? extend freeze frozen? hash initialize initialize_copy inspect instance_of? instance_variable_defined? instance_variable_get instance_variable_set instance_variables is_a? itself marshal_dump marshal_load method method_missing methods nil? object_id pretty_inspect pretty_print pretty_print_cycle pretty_print_inspect pretty_print_instance_variables private_methods protected_methods psych_to_yaml public_method public_methods public_send remove_instance_variable respond_to? respond_to_missing? singleton_class singleton_method singleton_methods taint tainted? tap to_a to_ary to_hash to_int to_io to_proc to_regexp to_s to_str trust untaint untrust untrusted? .yaml_tag ::ARGF ::ARGV ::DATA ::ENV ::FALSE ::NIL ::RUBY_COPYRIGHT ::RUBY_DESCRIPTION ::RUBY_ENGINE ::RUBY_ENGINE_VERSION ::RUBY_PATCHLEVEL ::RUBY_PLATFORM ::RUBY_RELEASE_DATE ::RUBY_REVISION ::RUBY_VERSION ::SCRIPT_LINES__ ::STDERR ::STDIN ::STDOUT ::TOPLEVEL_BINDING ::TRUE