### Class

# Gio BufferedOutputStream

since: 2.0

#### Description

    class Gio.BufferedOutputStream : Gio.FilterOutputStream
      implements Gio.Seekable {
      priv: GBufferedOutputStreamPrivate*
    }

Buffered output stream implements `GFilterOutputStream` and provides for buffered writes.

By default, `GBufferedOutputStream`‘s buffer size is set at 4 kilobytes.

To create a buffered output stream, use `g_buffered_output_stream_new()`, or `g_buffered_output_stream_new_sized()` to specify the buffer’s size at construction.

To get the size of a buffer within a buffered input stream, use `g_buffered_output_stream_get_buffer_size()`. To change the size of a buffered output stream’s buffer, use `g_buffered_output_stream_set_buffer_size()`. Note that the buffer’s size cannot be reduced below the size of the data within the buffer.

Available since: 2.0

#### Ancestors

- GFilterOutputStream
- GOutputStream
- GObject

#### Implements

- GSeekable

#### Constructors

###### g_buffered_output_stream_new

Creates a new buffered output stream for a base stream.

since: 2.0

###### g_buffered_output_stream_new_sized

Creates a new buffered output stream with a given buffer size.

since: 2.0

#### Instance methods

###### g_buffered_output_stream_get_auto_grow

Checks if the buffer automatically grows as data is added.

since: 2.0

###### g_buffered_output_stream_get_buffer_size

Gets the size of the buffer in the `stream`.

since: 2.0

###### g_buffered_output_stream_set_auto_grow

Sets whether or not the `stream`‘s buffer should automatically grow. If `auto_grow` is true, then each write will just make the buffer larger, and you must manually flush the buffer to actually write out the data to the underlying stream.

since: 2.0

###### g_buffered_output_stream_set_buffer_size

Sets the size of the internal buffer to `size`.

since: 2.0

##### Methods inherited from GFilterOutputStream (3)

###### g_filter_output_stream_get_base_stream

Gets the base stream for the filter stream.

since: 2.0

###### g_filter_output_stream_get_close_base_stream

Returns whether the base stream will be closed when `stream` is closed.

since: 2.0

###### g_filter_output_stream_set_close_base_stream

Sets whether the base stream will be closed when `stream` is closed.

since: 2.0

##### Methods inherited from GOutputStream (31)

Please see GOutputStream for a full list of methods.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from GSeekable (5)

###### g_seekable_can_seek

Tests if the stream supports the `GSeekableIface`.

since: 2.0

###### g_seekable_can_truncate

Tests if the length of the stream can be adjusted with g_seekable_truncate().

since: 2.0

###### g_seekable_seek

Seeks in the stream by the given `offset`, modified by `type`.

since: 2.0

###### g_seekable_tell

Tells the current position within the stream.

since: 2.0

###### g_seekable_truncate

Sets the length of the stream to `offset`. If the stream was previously larger than `offset`, the extra data is discarded. If the stream was previously shorter than `offset`, it is extended with NUL (‘\0’) bytes.

since: 2.0

#### Properties

###### Gio.BufferedOutputStream:auto-grow

Whether the buffer should automatically grow.

since: 2.0

###### Gio.BufferedOutputStream:buffer-size

The size of the backend buffer, in bytes.

since: 2.0

##### Properties inherited from GFilterOutputStream (2)

###### Gio.FilterOutputStream:base-stream

No description available.

since: 2.0

###### Gio.FilterOutputStream:close-base-stream

Whether the base stream should be closed when the filter stream is closed.

since: 2.0

#### Signals

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

since: 2.0

#### Class structure

    struct GioBufferedOutputStreamClass {
      GFilterOutputStreamClass parent_class;
      void (* _g_reserved1) (
    void
      );
      void (* _g_reserved2) (
    void
      );

    }

No description available.

###### Class members

`parent_class: GFilterOutputStreamClass`
  No description available.
`_g_reserved1: void (* _g_reserved1) ( void )`
  No description available.
`_g_reserved2: void (* _g_reserved2) ( void )`
  No description available.