Skip to content

class SF::FileInputStream
inherits SF::InputStream #

Implementation of input stream based on a file

This class is a specialization of InputStream that reads from a file on disk.

It wraps a file in the common InputStream interface and therefore allows to use generic classes or functions that accept such a stream, with a file on disk as the data source.

In addition to the virtual functions inherited from InputStream, FileInputStream adds a function to specify the file to open.

SFML resource classes can usually be loaded directly from a filename, so this class shouldn't be useful to you unless you create your own algorithms that operate on an InputStream.

Usage example:

def process(stream : InputStream)
end

stream = SF::FileInputStream.open("some_file.dat")
process(stream)

InputStream, MemoryInputStream

Included modules

SF::NonCopyable

Class methods#

.new #

Default constructor

View source

.open(*args, **kwargs) : self #

Shorthand for file_input_stream = FileInputStream.new; file_input_stream.open(...); file_input_stream

Raises InitError on failure

View source

Methods#

#finalize #

Default destructor

View source

#open(filename : String) : Bool #

Open the stream from a file path

  • filename - Name of the file to open

Returns: True on success, false on error

View source

#read(data : Slice) : Int64 #

Read data from the stream

After reading, the stream's reading position must be advanced by the amount of bytes read.

  • data - Buffer where to copy the read data

Returns: The number of bytes actually read, or -1 on error

View source

#seek(position : Int) : Int64 #

Change the current reading position

  • position - The position to seek to, from the beginning

Returns: The position actually sought to, or -1 on error

View source

#size : Int64 #

Return the size of the stream

Returns: The total number of bytes available in the stream, or -1 on error

View source

#tell : Int64 #

Get the current reading position in the stream

Returns: The current position, or -1 on error.

View source