### Class

# Gio DataInputStream

since: 2.0

#### Description

    class Gio.DataInputStream : Gio.BufferedInputStream
      implements Gio.Seekable {
      /* No available fields */
    }

Data input stream implements `GInputStream` and includes functions for reading structured data directly from a binary input stream.

Available since: 2.0

#### Ancestors

- GBufferedInputStream
- GFilterInputStream
- GInputStream
- GObject

#### Implements

- GSeekable

#### Constructors

###### g_data_input_stream_new

Creates a new data input stream for the `base_stream`.

since: 2.0

#### Instance methods

###### g_data_input_stream_get_byte_order

Gets the byte order for the data input stream.

since: 2.0

###### g_data_input_stream_get_newline_type

Gets the current newline type for the `stream`.

since: 2.0

###### g_data_input_stream_read_byte

Reads an unsigned 8-bit/1-byte value from `stream`.

since: 2.0

###### g_data_input_stream_read_int16

Reads a 16-bit/2-byte value from `stream`.

since: 2.0

###### g_data_input_stream_read_int32

Reads a signed 32-bit/4-byte value from `stream`.

since: 2.0

###### g_data_input_stream_read_int64

Reads a 64-bit/8-byte value from `stream`.

since: 2.0

###### g_data_input_stream_read_line

Reads a line from the data input stream. Note that no encoding checks or conversion is performed; the input is not guaranteed to be UTF-8, and may in fact have embedded NUL characters.

since: 2.0

###### g_data_input_stream_read_line_async

The asynchronous version of g_data_input_stream_read_line(). It is an error to have two outstanding calls to this function.

since: 2.20

###### g_data_input_stream_read_line_finish

Finish an asynchronous call started by g_data_input_stream_read_line_async(). Note the warning about string encoding in `g_data_input_stream_read_line()` applies here as well.

since: 2.20

###### g_data_input_stream_read_line_finish_utf8

Finish an asynchronous call started by g_data_input_stream_read_line_async().

since: 2.30

###### g_data_input_stream_read_line_utf8

Reads a UTF-8 encoded line from the data input stream.

since: 2.30

###### g_data_input_stream_read_uint16

Reads an unsigned 16-bit/2-byte value from `stream`.

since: 2.0

###### g_data_input_stream_read_uint32

Reads an unsigned 32-bit/4-byte value from `stream`.

since: 2.0

###### g_data_input_stream_read_uint64

Reads an unsigned 64-bit/8-byte value from `stream`.

since: 2.0

###### g_data_input_stream_read_until

Reads a string from the data input stream, up to the first occurrence of any of the stop characters.

deprecated: 2.56 since: 2.0

###### g_data_input_stream_read_until_async

The asynchronous version of g_data_input_stream_read_until(). It is an error to have two outstanding calls to this function.

deprecated: 2.56 since: 2.20

###### g_data_input_stream_read_until_finish

Finish an asynchronous call started by g_data_input_stream_read_until_async().

deprecated: 2.56 since: 2.20

###### g_data_input_stream_read_upto

Reads a string from the data input stream, up to the first occurrence of any of the stop characters.

since: 2.26

###### g_data_input_stream_read_upto_async

The asynchronous version of g_data_input_stream_read_upto(). It is an error to have two outstanding calls to this function.

since: 2.26

###### g_data_input_stream_read_upto_finish

Finish an asynchronous call started by g_data_input_stream_read_upto_async().

since: 2.24

###### g_data_input_stream_set_byte_order

This function sets the byte order for the given `stream`. All subsequent reads from the `stream` will be read in the given `order`.

since: 2.0

###### g_data_input_stream_set_newline_type

Sets the newline type for the `stream`.

since: 2.0

##### Methods inherited from GBufferedInputStream (9)

###### g_buffered_input_stream_fill

Tries to read `count` bytes from the stream into the buffer. Will block during this read.

since: 2.0

###### g_buffered_input_stream_fill_async

Reads data into `stream`‘s buffer asynchronously, up to `count` size. `io_priority` can be used to prioritize reads. For the synchronous version of this function, see g_buffered_input_stream_fill().

since: 2.0

###### g_buffered_input_stream_fill_finish

Finishes an asynchronous read.

since: 2.0

###### g_buffered_input_stream_get_available

Gets the size of the available data within the stream.

since: 2.0

###### g_buffered_input_stream_get_buffer_size

Gets the size of the input buffer.

since: 2.0

###### g_buffered_input_stream_peek

Peeks in the buffer, copying data of size `count` into `buffer`, offset `offset` bytes.

since: 2.0

###### g_buffered_input_stream_peek_buffer

Returns the buffer with the currently available bytes. The returned buffer must not be modified and will become invalid when reading from the stream or filling the buffer.

since: 2.0

###### g_buffered_input_stream_read_byte

Tries to read a single byte from the stream or the buffer. Will block during this read.

since: 2.0

###### g_buffered_input_stream_set_buffer_size

Sets the size of the internal buffer of `stream` to `size`, or to the size of the contents of the buffer. The buffer can never be resized smaller than its current contents.

since: 2.0

##### Methods inherited from GFilterInputStream (3)

###### g_filter_input_stream_get_base_stream

Gets the base stream for the filter stream.

since: 2.0

###### g_filter_input_stream_get_close_base_stream

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

since: 2.0

###### g_filter_input_stream_set_close_base_stream

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

since: 2.0

##### Methods inherited from GInputStream (19)

###### g_input_stream_clear_pending

Clears the pending flag on `stream`.

since: 2.0

###### g_input_stream_close

Closes the stream, releasing resources related to it.

since: 2.0

###### g_input_stream_close_async

Requests an asynchronous closes of the stream, releasing resources related to it. When the operation is finished `callback` will be called. You can then call `g_input_stream_close_finish()` to get the result of the operation.

since: 2.0

###### g_input_stream_close_finish

Finishes closing a stream asynchronously, started from g_input_stream_close_async().

since: 2.0

###### g_input_stream_has_pending

Checks if an input stream has pending actions.

since: 2.0

###### g_input_stream_is_closed

Checks if an input stream is closed.

since: 2.0

###### g_input_stream_read

Tries to read `count` bytes from the stream into the buffer starting at `buffer`. Will block during this read.

since: 2.0

###### g_input_stream_read_all

Tries to read `count` bytes from the stream into the buffer starting at `buffer`. Will block during this read.

since: 2.0

###### g_input_stream_read_all_async

Request an asynchronous read of `count` bytes from the stream into the buffer starting at `buffer`.

since: 2.44

###### g_input_stream_read_all_finish

Finishes an asynchronous stream read operation started with g_input_stream_read_all_async().

since: 2.44

###### g_input_stream_read_async

Request an asynchronous read of `count` bytes from the stream into the buffer starting at `buffer`. When the operation is finished `callback` will be called. You can then call `g_input_stream_read_finish()` to get the result of the operation.

since: 2.0

###### g_input_stream_read_bytes

Like g_input_stream_read(), this tries to read `count` bytes from the stream in a blocking fashion. However, rather than reading into a user-supplied buffer, this will create a new `GBytes` containing the data that was read. This may be easier to use from language bindings.

since: 2.34

###### g_input_stream_read_bytes_async

Request an asynchronous read of `count` bytes from the stream into a new `GBytes`. When the operation is finished `callback` will be called. You can then call `g_input_stream_read_bytes_finish()` to get the result of the operation.

since: 2.34

###### g_input_stream_read_bytes_finish

Finishes an asynchronous stream read-into-`GBytes` operation.

since: 2.34

###### g_input_stream_read_finish

Finishes an asynchronous stream read operation.

since: 2.0

###### g_input_stream_set_pending

Sets `stream` to have actions pending. If the pending flag is already set or `stream` is closed, it will return `FALSE` and set `error`.

since: 2.0

###### g_input_stream_skip

Tries to skip `count` bytes from the stream. Will block during the operation.

since: 2.0

###### g_input_stream_skip_async

Request an asynchronous skip of `count` bytes from the stream. When the operation is finished `callback` will be called. You can then call `g_input_stream_skip_finish()` to get the result of the operation.

since: 2.0

###### g_input_stream_skip_finish

Finishes a stream skip operation.

since: 2.0

##### 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.DataInputStream:byte-order

The :byte-order property determines the byte ordering that is used when reading multi-byte entities (such as integers) from the stream.

since: 2.0

###### Gio.DataInputStream:newline-type

The :newline-type property determines what is considered as a line ending when reading complete lines from the stream.

since: 2.0

##### Properties inherited from GBufferedInputStream (1)

###### Gio.BufferedInputStream:buffer-size

The size of the backend buffer, in bytes.

since: 2.0

##### Properties inherited from GFilterInputStream (2)

###### Gio.FilterInputStream:base-stream

The underlying base stream on which the I/O ops will be done.

since: 2.0

###### Gio.FilterInputStream: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 GioDataInputStreamClass {
      GBufferedInputStreamClass parent_class;
      void (* _g_reserved1) (
    void
      );
      void (* _g_reserved2) (
    void
      );
      void (* _g_reserved3) (
    void
      );
      void (* _g_reserved4) (
    void
      );
      void (* _g_reserved5) (
    void
      );

    }

No description available.

###### Class members

`parent_class: GBufferedInputStreamClass`
  No description available.
`_g_reserved1: void (* _g_reserved1) ( void )`
  No description available.
`_g_reserved2: void (* _g_reserved2) ( void )`
  No description available.
`_g_reserved3: void (* _g_reserved3) ( void )`
  No description available.
`_g_reserved4: void (* _g_reserved4) ( void )`
  No description available.
`_g_reserved5: void (* _g_reserved5) ( void )`
  No description available.