W3cubDocs

/Elixir 1.5

StringIO

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"

Summary

Functions

close(pid)

Stops the IO device and returns the remaining input/output buffers

contents(pid)

Returns the current input/output buffers for the given IO device

flush(pid)

Flushes the output buffer and returns its current contents

open(string, options \\ [])

Creates an IO device

Functions

close(pid)

close(pid) :: {:ok, {binary, binary}}

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"}}

contents(pid)

contents(pid) :: {binary, binary}

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"}

flush(pid)

flush(pid) :: binary

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", ""}

open(string, options \\ [])

open(binary, keyword) :: {:ok, pid}

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)
{"", ">"}

© 2012–2017 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.5.0/StringIO.html