# 4.6 `StringIO` -- ファイルのように文字列を読み書きする

このモジュールは、(メモリファイルとしても知られている) 文字列のバッファに対して読み書きを行うファイルのようなクラス、 `StringIO` 、を実装しています。

操作方法についてはファイルオブジェクトの説明を参照してください(セクション 2.3.8)。

class `StringIO`( | [buffer])

  `StringIO` オブジェクトを作る際に、コンストラクターに文字列を渡すこと で初期化することができます。 文字列を渡さない場合、最初は `StringIO` はカラです。

  `StringIO` オブジェクトはユニコードも 8-bit の文字列も受け付けますが、 この2つを混ぜることには少し注意が必要です。 この2つが一緒に使われると、 `getvalue()` が呼ばれたときに、 (8th ビットを使っている)7-bit ASCII に解釈できない 8-bit の文字列は、 `UnicodeError` を引き起こします。

次にあげる `StringIO` オブジェクトのメソッドには特別な説明が必要です:

`getvalue`( | )

  `StringIO` オブジェクトの `close()` メソッドが呼ばれる前ならいつでも、 ``file'' の中身全体を返します。 ユニコードと 8-bit の文字列を混ぜることの説明は、上の注意を参照してください。 この2つの文字コードを混ぜると、このメソッドは `UnicodeError` を 引き起こすかもしれません。

`close`( | )

  メモリバッファを解放します。