Elixir v1.6.0 StringIO View Source
Controls an IO device process that wraps a string.
A StringIO
IO device can be passed as a “device” to
most of the functions in the IO
module.
Examples
iex> {:ok, pid} = StringIO.open("foo")
iex> IO.read(pid, 2)
"fo"
Link to this section Summary
Functions
Stops the IO device and returns the remaining input/output buffers
Returns the current input/output buffers for the given IO device
Flushes the output buffer and returns its current contents
Creates an IO device
Link to this section Functions
Stops the IO device and returns the remaining input/output buffers.
Examples
iex> {:ok, pid} = StringIO.open("in")
iex> IO.write(pid, "out")
iex> StringIO.close(pid)
{:ok, {"in", "out"}}
Returns the current input/output buffers for the given IO device.
Examples
iex> {:ok, pid} = StringIO.open("in")
iex> IO.write(pid, "out")
iex> StringIO.contents(pid)
{"in", "out"}
Flushes the output buffer and returns its current contents.
Examples
iex> {:ok, pid} = StringIO.open("in")
iex> IO.write(pid, "out")
iex> StringIO.flush(pid)
"out"
iex> StringIO.contents(pid)
{"in", ""}
Creates an IO device.
string
will be the initial input of the newly created
device.
If the :capture_prompt
option is set to true
,
prompts (specified as arguments to IO.get*
functions)
are captured.
Examples
iex> {:ok, pid} = StringIO.open("foo")
iex> IO.gets(pid, ">")
"foo"
iex> StringIO.contents(pid)
{"", ""}
iex> {:ok, pid} = StringIO.open("foo", capture_prompt: true)
iex> IO.gets(pid, ">")
"foo"
iex> StringIO.contents(pid)
{"", ">"}