\section{Standard Module \module{StringIO}}
\label{module-StringIO}

\stmodindex{StringIO}

This module implements a file-like class, \class{StringIO},
that reads and writes a string buffer (also known as \emph{memory
files}). See the description on file objects for operations.

\begin{classdesc}{StringIO}{\optional{buffer}}
When a \class{StringIO} object is created, it can be initialized
to an existing string by passing the string to the constructor.
If no string is given, the \class{StringIO} will start empty.
\end{classdesc}

The following methods of \class{StringIO} objects require special
mention:

\begin{methoddesc}{getvalue}{}
Retrieve the entire contents of the ``file'' at any time before the
\class{StringIO} object's \method{close()} method is called.
\end{methoddesc}

\begin{methoddesc}{close}{}
Free the memory buffer.
\end{methoddesc}


\section{Built-in Module \module{cStringIO}}
\bimodindex{cStringIO}
\label{module-cStringIO}

% This section was written by Fred L. Drake, Jr. <fdrake@acm.org>

The module \module{cStringIO} provides an interface similar to that of
the \module{StringIO} module.  Heavy use of \class{StringIO.StringIO}
objects can be made more efficient by using the function
\function{StringIO()} from this module instead.

Since this module provides a factory function which returns objects of
built-in types, there's no way to build your own version using
subclassing.  Use the original \module{StringIO} module in that case.
