Object Hierarchy:

Object hierarchy for MemoryOutputStream


public class MemoryOutputStream : OutputStream, PollableOutputStream, Seekable

MemoryOutputStream is a class for using arbitrary memory chunks as output for GIO streaming output operations.

As of GLib 2.34, MemoryOutputStream trivially implements PollableOutputStream: it always polls as ready.

Example: MemoryOutputStream:

public static int main (string[] args) {
try {
MemoryOutputStream os = new MemoryOutputStream (null, GLib.realloc,;

// Write data to memory:
DataOutputStream dos = new DataOutputStream (os);
dos.put_int16 (int16.MIN);
dos.put_int32 (int32.MIN);
dos.put_int64 (int64.MIN);
dos.close ();

// Read data:
uint8[] data = os.steal_data ();
data.length = (int) os.get_data_size ();

MemoryInputStream @is = new MemoryInputStream.from_data (data,;
DataInputStream dis = new DataInputStream (@is);
stdout.printf ("%d (Expected: %d)\n", dis.read_int16 (), int16.MIN);
stdout.printf ("%d (Expected: %d)\n", dis.read_int32 (), int32.MIN);
stdout.printf ("%"+int64.FORMAT+" (Expected: %"+int64.FORMAT+")\n", dis.read_int64 (), int64.MIN);
} catch (IOError e) {
stdout.printf ("IOError %s\n", e.message);
return 0;

valac --pkg gio-2.0 GLib.MemoryOutputStream.vala

Namespace: GLib
Package: gio-2.0



Creation methods:


Inherited Members:

All known members inherited from interface GLib.PollableOutputStream
All known members inherited from interface GLib.Seekable