### Class

# Gio FileInputStream

since: 2.0

#### Description

    class Gio.FileInputStream : Gio.InputStream
      implements Gio.Seekable {
      /* No available fields */
    }

`GFileInputStream` provides input streams that take their content from a file.

`GFileInputStream` implements `GSeekable`, which allows the input stream to jump to arbitrary positions in the file, provided the filesystem of the file allows it. To find the position of a file input stream, use `g_seekable_tell()`. To find out if a file input stream supports seeking, use `Gio.SeekableIface.can_seek`. To position a file input stream, use `Gio.SeekableIface.seek`.

Available since: 2.0

#### Ancestors

- GInputStream
- GObject

#### Implements

- GSeekable

#### Instance methods

###### g_file_input_stream_query_info

Queries a file input stream the given `attributes`. This function blocks while querying the stream. For the asynchronous (non-blocking) version of this function, see g_file_input_stream_query_info_async(). While the stream is blocked, the stream will set the pending flag internally, and any other operations on the stream will fail with `G_IO_ERROR_PENDING`.

since: 2.0

###### g_file_input_stream_query_info_async

Queries the stream information asynchronously. When the operation is finished `callback` will be called. You can then call `g_file_input_stream_query_info_finish()` to get the result of the operation.

since: 2.0

###### g_file_input_stream_query_info_finish

Finishes an asynchronous info query operation.

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

#### 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 GioFileInputStreamClass {
      GInputStreamClass parent_class;
      goffset (* tell) (
        GFileInputStream* stream
      );
      gboolean (* can_seek) (
        GFileInputStream* stream
      );
      gboolean (* seek) (
        GFileInputStream* stream,
        goffset offset,
        GSeekType type,
        GCancellable* cancellable,
        GError** error
      );
      GFileInfo* (* query_info) (
        GFileInputStream* stream,
        const char* attributes,
        GCancellable* cancellable,
        GError** error
      );
      void (* query_info_async) (
        GFileInputStream* stream,
        const char* attributes,
        int io_priority,
        GCancellable* cancellable,
        GAsyncReadyCallback callback,
        gpointer user_data
      );
      GFileInfo* (* query_info_finish) (
        GFileInputStream* stream,
        GAsyncResult* result,
        GError** error
      );
      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: GInputStreamClass`
  No description available.
`tell: goffset (* tell) ( GFileInputStream* stream )`
  No description available.
`can_seek: gboolean (* can_seek) ( GFileInputStream* stream )`
  No description available.
`seek: gboolean (* seek) ( GFileInputStream* stream, goffset offset, GSeekType type, GCancellable* cancellable, GError** error )`
  No description available.
`query_info: GFileInfo* (* query_info) ( GFileInputStream* stream, const char* attributes, GCancellable* cancellable, GError** error )`
  No description available.
`query_info_async: void (* query_info_async) ( GFileInputStream* stream, const char* attributes, int io_priority, GCancellable* cancellable, GAsyncReadyCallback callback, gpointer user_data )`
  No description available.
`query_info_finish: GFileInfo* (* query_info_finish) ( GFileInputStream* stream, GAsyncResult* result, GError** error )`
  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.

#### Virtual methods

###### Gio.FileInputStreamClass.can_seek

No description available.

since: 2.0

###### Gio.FileInputStreamClass.query_info

Queries a file input stream the given `attributes`. This function blocks while querying the stream. For the asynchronous (non-blocking) version of this function, see g_file_input_stream_query_info_async(). While the stream is blocked, the stream will set the pending flag internally, and any other operations on the stream will fail with `G_IO_ERROR_PENDING`.

since: 2.0

###### Gio.FileInputStreamClass.query_info_async

Queries the stream information asynchronously. When the operation is finished `callback` will be called. You can then call `g_file_input_stream_query_info_finish()` to get the result of the operation.

since: 2.0

###### Gio.FileInputStreamClass.query_info_finish

Finishes an asynchronous info query operation.

since: 2.0

###### Gio.FileInputStreamClass.seek

No description available.

since: 2.0

###### Gio.FileInputStreamClass.tell

No description available.

since: 2.0