Object Hierarchy:

GLib.FileOutputStream GLib.FileOutputStream GLib.FileOutputStream GLib.OutputStream GLib.OutputStream GLib.OutputStream->GLib.FileOutputStream GLib.Object GLib.Object GLib.Object->GLib.OutputStream GLib.Seekable GLib.Seekable GLib.Seekable->GLib.FileOutputStream


[ CCode ( type_id = "g_file_output_stream_get_type ()" ) ]
public class FileOutputStream : OutputStream, Seekable

`GFileOutputStream` provides output streams that write their content to a file.

`GFileOutputStream` implements [iface@Gio.Seekable], which allows the output stream to jump to arbitrary positions in the file and to truncate the file, provided the filesystem of the file supports these operations.

To find the position of a file output stream, use [method@Gio.Seekable.tell]. To find out if a file output stream supports seeking, use [ method@Gio.Seekable.can_seek].To position a file output stream, use []. To find out if a file output stream supports truncating, use [method@Gio.Seekable.can_truncate]. To truncate a file output stream, use [method@Gio.Seekable.truncate].

Example: FileIOStream:

public static int main (string[] args) {
try {
// Create a file that can only be accessed by the current user:
File file = File.new_for_path ("my-test.bin");
FileIOStream ios = file.create_readwrite (FileCreateFlags.PRIVATE);

// Write data:

size_t bytes_written;
FileOutputStream os = ios.output_stream as FileOutputStream;
os.write_all ("My 1. line\n".data, out bytes_written);
os.write_all ("My 2. line\n".data, out bytes_written);

DataOutputStream dos = new DataOutputStream (os);
dos.put_string ("My 3. line\n");
dos.put_int16 (10);

// Set the file pointer to the beginning of the stream:
assert (ios.can_seek ()); (0, SeekType.SET);

// Read n bytes:

FileInputStream @is = ios.input_stream as FileInputStream;

// Output: ``M``
uint8 buffer[1];
size_t size = (buffer);
stdout.write (buffer, size);

// Output: ``y 1. line``
DataInputStream dis = new DataInputStream (@is);
string str = dis.read_line ();
print ("%s\n", str);

// Output: ``My 2. line``
str = dis.read_line ();
print ("%s\n", str);

// Output: ``My 3. line``
str = dis.read_line ();
print ("%s\n", str);

// Output: ``10``
int16 i = dis.read_int16 ();
print ("%d\n", i);
} catch (Error e) {
print ("Error: %s\n", e.message);

return 0;

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

Namespace: GLib
Package: gio-2.0


Creation methods:


Inherited Members:

All known members inherited from interface GLib.Seekable