SdFat
Public Types | Public Member Functions | Static Public Attributes | Private Member Functions | List of all members
fstream Class Reference

file input/output stream. More...

#include <fstream.h>

Inheritance diagram for fstream:
Inheritance graph
[legend]
Collaboration diagram for fstream:
Collaboration graph
[legend]

Public Types

typedef unsigned int fmtflags
 
typedef unsigned char iostate
 
typedef int32_t off_type
 
typedef uint8_t openmode
 
typedef uint32_t pos_type
 
enum  seekdir { beg, cur, end }
 
typedef uint32_t streamsize
 

Public Member Functions

bool bad () const
 
void clear (iostate state=goodbit)
 
void close ()
 
bool eof () const
 
bool fail () const
 
char fill ()
 
char fill (char c)
 
fmtflags flags () const
 
fmtflags flags (fmtflags fl)
 
ostreamflush ()
 
 fstream (const char *path, openmode mode=in|out)
 
streamsize gcount () const
 
int get ()
 
istreamget (char &ch)
 
istreamget (char *str, streamsize n, char delim= '\n')
 
istreamgetline (char *str, streamsize n, char delim= '\n')
 
bool good () const
 
istreamignore (streamsize n=1, int delim=-1)
 
bool is_open ()
 
void open (const char *path, openmode mode=in|out)
 
 operator const void * () const
 
bool operator! () const
 
ostreamoperator<< (ostream &(*pf)(ostream &str))
 
ostreamoperator<< (ios_base &(*pf)(ios_base &str))
 
ostreamoperator<< (bool arg)
 
ostreamoperator<< (const char *arg)
 
ostreamoperator<< (const signed char *arg)
 
ostreamoperator<< (const unsigned char *arg)
 
ostreamoperator<< (char arg)
 
ostreamoperator<< (signed char arg)
 
ostreamoperator<< (unsigned char arg)
 
ostreamoperator<< (double arg)
 
ostreamoperator<< (float arg)
 
ostreamoperator<< (short arg)
 
ostreamoperator<< (unsigned short arg)
 
ostreamoperator<< (int arg)
 
ostreamoperator<< (unsigned int arg)
 
ostreamoperator<< (long arg)
 
ostreamoperator<< (unsigned long arg)
 
ostreamoperator<< (const void *arg)
 
ostreamoperator<< (const __FlashStringHelper *arg)
 
istreamoperator>> (istream &(*pf)(istream &str))
 
istreamoperator>> (ios_base &(*pf)(ios_base &str))
 
istreamoperator>> (ios &(*pf)(ios &str))
 
istreamoperator>> (char *str)
 
istreamoperator>> (char &ch)
 
istreamoperator>> (signed char *str)
 
istreamoperator>> (signed char &ch)
 
istreamoperator>> (unsigned char *str)
 
istreamoperator>> (unsigned char &ch)
 
istreamoperator>> (bool &arg)
 
istreamoperator>> (short &arg)
 
istreamoperator>> (unsigned short &arg)
 
istreamoperator>> (int &arg)
 
istreamoperator>> (unsigned int &arg)
 
istreamoperator>> (long &arg)
 
istreamoperator>> (unsigned long &arg)
 
istreamoperator>> (double &arg)
 
istreamoperator>> (float &arg)
 
istreamoperator>> (void *&arg)
 
int peek ()
 
int precision () const
 
int precision (unsigned int n)
 
ostreamput (char ch)
 
iostate rdstate () const
 
istreamseekg (pos_type pos)
 
istreamseekg (off_type off, seekdir way)
 
ostreamseekp (pos_type pos)
 
ostreamseekp (off_type off, seekdir way)
 
fmtflags setf (fmtflags fl)
 
fmtflags setf (fmtflags fl, fmtflags mask)
 
void setstate (iostate state)
 
void skipWhite ()
 
pos_type tellg ()
 
pos_type tellp ()
 
void unsetf (fmtflags fl)
 
unsigned width ()
 
unsigned width (unsigned n)
 

Static Public Attributes

static const fmtflags adjustfield = left | right | internal
 
static const openmode app = 0X4
 
static const openmode ate = 0X8
 
static const iostate badbit = 0X01
 
static const fmtflags basefield = dec | hex | oct
 
static const openmode binary = 0X10
 
static const fmtflags boolalpha = 0x0100
 
static const fmtflags dec = 0x0008
 
static const iostate eofbit = 0x02
 
static const iostate failbit = 0X04
 
static const iostate goodbit = 0x00
 
static const fmtflags hex = 0x0010
 
static const openmode in = 0X20
 
static const fmtflags internal = 0x0004
 
static const fmtflags left = 0x0001
 
static const fmtflags oct = 0x0020
 
static const openmode out = 0X40
 
static const fmtflags right = 0x0002
 
static const fmtflags showbase = 0x0200
 
static const fmtflags showpoint = 0x0400
 
static const fmtflags showpos = 0x0800
 
static const fmtflags skipws = 0x1000
 
static const openmode trunc = 0X80
 
static const fmtflags uppercase = 0x4000
 

Private Member Functions

bool open (FatFileSystem *fs, const char *path, uint8_t oflag)
 
bool open (FatFile *dirFile, uint16_t index, uint8_t oflag)
 
bool open (FatFile *dirFile, const char *path, uint8_t oflag)
 
int peek ()
 

Detailed Description

file input/output stream.

Member Typedef Documentation

typedef unsigned int ios_base::fmtflags
inherited

type for format flags

typedef unsigned char ios_base::iostate
inherited

typedef for iostate bitmask

typedef int32_t ios_base::off_type
inherited

type for relative seek offset

typedef uint8_t ios_base::openmode
inherited

typedef for iostream open mode

typedef uint32_t ios_base::pos_type
inherited

type for absolute seek position

typedef uint32_t ios_base::streamsize
inherited

unsigned size that can represent maximum file size. (violates spec - should be signed)

Member Enumeration Documentation

enum ios_base::seekdir
inherited

enumerated type for the direction of relative seeks

Enumerator
beg 

seek relative to the beginning of the stream

cur 

seek relative to the current stream position

end 

seek relative to the end of the stream

Constructor & Destructor Documentation

fstream::fstream ( const char *  path,
openmode  mode = in | out 
)
inlineexplicit

Constructor with open

Parameters
[in]pathpath to open
[in]modeopen mode

Member Function Documentation

bool ios::bad ( ) const
inlineinherited
Returns
true if bad bit is set else false.
void fstream::clear ( iostate  state = goodbit)
inline

Clear state and writeError

Parameters
[in]statenew state for stream
void fstream::close ( )
inline

Close a file and force cached data and directory information to be written to the storage device.

bool ios::eof ( ) const
inlineinherited
Returns
true if end of file has been reached else false.

Warning: An empty file returns false before the first read.

Moral: eof() is only useful in combination with fail(), to find out whether EOF was the cause for failure

bool ios::fail ( ) const
inlineinherited
Returns
true if any iostate bit other than eof are set else false.
char ios_base::fill ( )
inlineinherited
Returns
fill character
char ios_base::fill ( char  c)
inlineinherited

Set fill character

Parameters
[in]cnew fill character
Returns
old fill character
fmtflags ios_base::flags ( ) const
inlineinherited
Returns
format flags
fmtflags ios_base::flags ( fmtflags  fl)
inlineinherited

set format flags

Parameters
[in]flnew flag
Returns
old flags
ostream& ostream::flush ( )
inlineinherited

Flushes the buffer associated with this stream. The flush function calls the sync function of the associated file.

Returns
A reference to the ostream object.
streamsize istream::gcount ( ) const
inlineinherited
Returns
The number of characters extracted by the last unformatted input function.
int istream::get ( )
inherited

Extract a character if one is available.

Returns
The character or -1 if a failure occurs. A failure is indicated by the stream state.
istream & istream::get ( char &  ch)
inherited

Extract a character if one is available.

Parameters
[out]chlocation to receive the extracted character.
Returns
always returns *this. A failure is indicated by the stream state.
istream & istream::get ( char *  str,
streamsize  n,
char  delim = '\n' 
)
inherited

Extract characters.

Parameters
[out]strLocation to receive extracted characters.
[in]nSize of str.
[in]delimDelimiter

Characters are extracted until extraction fails, n is less than 1, n-1 characters are extracted, or the next character equals delim (delim is not extracted). If no characters are extracted failbit is set. If end-of-file occurs the eofbit is set.

Returns
always returns *this. A failure is indicated by the stream state.
istream & istream::getline ( char *  str,
streamsize  n,
char  delim = '\n' 
)
inherited

Extract characters

Parameters
[out]strLocation to receive extracted characters.
[in]nSize of str.
[in]delimDelimiter

Characters are extracted until extraction fails, the next character equals delim (delim is extracted), or n-1 characters are extracted.

The failbit is set if no characters are extracted or n-1 characters are extracted. If end-of-file occurs the eofbit is set.

Returns
always returns *this. A failure is indicated by the stream state.
bool ios::good ( ) const
inlineinherited
Returns
True if no iostate flags are set else false.
istream & istream::ignore ( streamsize  n = 1,
int  delim = -1 
)
inherited

Extract characters and discard them.

Parameters
[in]nmaximum number of characters to ignore.
[in]delimDelimiter.

Characters are extracted until extraction fails, n characters are extracted, or the next input character equals delim (the delimiter is extracted). If end-of-file occurs the eofbit is set.

Failures are indicated by the state of the stream.

Returns
*this
bool fstream::is_open ( )
inline
Returns
True if stream is open else false.
void fstream::open ( const char *  path,
openmode  mode = in | out 
)
inline

Open a fstream

Parameters
[in]pathfile to open
[in]modeopen mode

Valid open modes are (at end, ios::ate, and/or ios::binary may be added):

ios::in - Open file for reading.

ios::out or ios::out | ios::trunc - Truncate to 0 length, if existent, or create a file for writing only.

ios::app or ios::out | ios::app - Append; open or create file for writing at end-of-file.

ios::in | ios::out - Open file for update (reading and writing).

ios::in | ios::out | ios::trunc - Truncate to zero length, if existent, or create file for update.

ios::in | ios::app or ios::in | ios::out | ios::app - Append; open or create text file for update, writing at end of file.

ios::operator const void * ( ) const
inlineinherited
Returns
null pointer if fail() is true.
bool ios::operator! ( ) const
inlineinherited
Returns
true if fail() else false.
ostream& ostream::operator<< ( ostream &(*)(ostream &str)  pf)
inlineinherited

call manipulator

Parameters
[in]pffunction to call
Returns
the stream
ostream& ostream::operator<< ( ios_base &(*)(ios_base &str)  pf)
inlineinherited

call manipulator

Parameters
[in]pffunction to call
Returns
the stream
ostream& ostream::operator<< ( bool  arg)
inlineinherited

Output bool

Parameters
[in]argvalue to output
Returns
the stream
ostream& ostream::operator<< ( const char *  arg)
inlineinherited

Output string

Parameters
[in]argstring to output
Returns
the stream
ostream& ostream::operator<< ( const signed char *  arg)
inlineinherited

Output string

Parameters
[in]argstring to output
Returns
the stream
ostream& ostream::operator<< ( const unsigned char *  arg)
inlineinherited

Output string

Parameters
[in]argstring to output
Returns
the stream
ostream& ostream::operator<< ( char  arg)
inlineinherited

Output character

Parameters
[in]argcharacter to output
Returns
the stream
ostream& ostream::operator<< ( signed char  arg)
inlineinherited

Output character

Parameters
[in]argcharacter to output
Returns
the stream
ostream& ostream::operator<< ( unsigned char  arg)
inlineinherited

Output character

Parameters
[in]argcharacter to output
Returns
the stream
ostream& ostream::operator<< ( double  arg)
inlineinherited

Output double

Parameters
[in]argvalue to output
Returns
the stream
ostream& ostream::operator<< ( float  arg)
inlineinherited

Output float

Parameters
[in]argvalue to output
Returns
the stream
ostream& ostream::operator<< ( short  arg)
inlineinherited

Output signed short

Parameters
[in]argvalue to output
Returns
the stream
ostream& ostream::operator<< ( unsigned short  arg)
inlineinherited

Output unsigned short

Parameters
[in]argvalue to output
Returns
the stream
ostream& ostream::operator<< ( int  arg)
inlineinherited

Output signed int

Parameters
[in]argvalue to output
Returns
the stream
ostream& ostream::operator<< ( unsigned int  arg)
inlineinherited

Output unsigned int

Parameters
[in]argvalue to output
Returns
the stream
ostream& ostream::operator<< ( long  arg)
inlineinherited

Output signed long

Parameters
[in]argvalue to output
Returns
the stream
ostream& ostream::operator<< ( unsigned long  arg)
inlineinherited

Output unsigned long

Parameters
[in]argvalue to output
Returns
the stream
ostream& ostream::operator<< ( const void *  arg)
inlineinherited

Output pointer

Parameters
[in]argvalue to output
Returns
the stream
ostream& ostream::operator<< ( const __FlashStringHelper *  arg)
inlineinherited

Output a string from flash using the Arduino F() macro.

Parameters
[in]argpointing to flash string
Returns
the stream
istream& istream::operator>> ( istream &(*)(istream &str)  pf)
inlineinherited

call manipulator

Parameters
[in]pffunction to call
Returns
the stream
istream& istream::operator>> ( ios_base &(*)(ios_base &str)  pf)
inlineinherited

call manipulator

Parameters
[in]pffunction to call
Returns
the stream
istream& istream::operator>> ( ios &(*)(ios &str)  pf)
inlineinherited

call manipulator

Parameters
[in]pffunction to call
Returns
the stream
istream& istream::operator>> ( char *  str)
inlineinherited

Extract a character string

Parameters
[out]strlocation to store the string.
Returns
Is always *this. Failure is indicated by the state of *this.
istream& istream::operator>> ( char &  ch)
inlineinherited

Extract a character

Parameters
[out]chlocation to store the character.
Returns
Is always *this. Failure is indicated by the state of *this.
istream& istream::operator>> ( signed char *  str)
inlineinherited

Extract a character string

Parameters
[out]strlocation to store the string.
Returns
Is always *this. Failure is indicated by the state of *this.
istream& istream::operator>> ( signed char &  ch)
inlineinherited

Extract a character

Parameters
[out]chlocation to store the character.
Returns
Is always *this. Failure is indicated by the state of *this.
istream& istream::operator>> ( unsigned char *  str)
inlineinherited

Extract a character string

Parameters
[out]strlocation to store the string.
Returns
Is always *this. Failure is indicated by the state of *this.
istream& istream::operator>> ( unsigned char &  ch)
inlineinherited

Extract a character

Parameters
[out]chlocation to store the character.
Returns
Is always *this. Failure is indicated by the state of *this.
istream& istream::operator>> ( bool &  arg)
inlineinherited

Extract a value of type bool.

Parameters
[out]arglocation to store the value.
Returns
Is always *this. Failure is indicated by the state of *this.
istream& istream::operator>> ( short &  arg)
inlineinherited

Extract a value of type short.

Parameters
[out]arglocation to store the value.
Returns
Is always *this. Failure is indicated by the state of *this.
istream& istream::operator>> ( unsigned short &  arg)
inlineinherited

Extract a value of type unsigned short.

Parameters
[out]arglocation to store the value.
Returns
Is always *this. Failure is indicated by the state of *this.
istream& istream::operator>> ( int &  arg)
inlineinherited

Extract a value of type int.

Parameters
[out]arglocation to store the value.
Returns
Is always *this. Failure is indicated by the state of *this.
istream& istream::operator>> ( unsigned int &  arg)
inlineinherited

Extract a value of type unsigned int.

Parameters
[out]arglocation to store the value.
Returns
Is always *this. Failure is indicated by the state of *this.
istream& istream::operator>> ( long &  arg)
inlineinherited

Extract a value of type long.

Parameters
[out]arglocation to store the value.
Returns
Is always *this. Failure is indicated by the state of *this.
istream& istream::operator>> ( unsigned long &  arg)
inlineinherited

Extract a value of type unsigned long.

Parameters
[out]arglocation to store the value.
Returns
Is always *this. Failure is indicated by the state of *this.
istream& istream::operator>> ( double &  arg)
inlineinherited

Extract a value of type double.

Parameters
[out]arglocation to store the value.
Returns
Is always *this. Failure is indicated by the state of *this.
istream& istream::operator>> ( float &  arg)
inlineinherited

Extract a value of type float.

Parameters
[out]arglocation to store the value.
Returns
Is always *this. Failure is indicated by the state of *this.
istream& istream::operator>> ( void *&  arg)
inlineinherited

Extract a value of type void*.

Parameters
[out]arglocation to store the value.
Returns
Is always *this. Failure is indicated by the state of *this.
int istream::peek ( )
inherited

Return the next available character without consuming it.

Returns
The character if the stream state is good else -1;
int ios_base::precision ( ) const
inlineinherited
Returns
precision
int ios_base::precision ( unsigned int  n)
inlineinherited

set precision

Parameters
[in]nnew precision
Returns
old precision
ostream& ostream::put ( char  ch)
inlineinherited

Puts a character in a stream.

The unformatted output function inserts the element ch. It returns *this.

Parameters
[in]chThe character
Returns
A reference to the ostream object.
iostate ios::rdstate ( ) const
inlineinherited
Returns
The iostate flags for this file.
istream& istream::seekg ( pos_type  pos)
inlineinherited

Set the stream position

Parameters
[in]posThe absolute position in which to move the read pointer.
Returns
Is always *this. Failure is indicated by the state of *this.
istream& istream::seekg ( off_type  off,
seekdir  way 
)
inlineinherited

Set the stream position.

Parameters
[in]offAn offset to move the read pointer relative to way. off is a signed 32-bit int so the offset is limited to +- 2GB.
[in]wayOne of ios::beg, ios::cur, or ios::end.
Returns
Is always *this. Failure is indicated by the state of *this.
ostream& ostream::seekp ( pos_type  pos)
inlineinherited

Set the stream position

Parameters
[in]posThe absolute position in which to move the write pointer.
Returns
Is always *this. Failure is indicated by the state of *this.
ostream& ostream::seekp ( off_type  off,
seekdir  way 
)
inlineinherited

Set the stream position.

Parameters
[in]offAn offset to move the write pointer relative to way. off is a signed 32-bit int so the offset is limited to +- 2GB.
[in]wayOne of ios::beg, ios::cur, or ios::end.
Returns
Is always *this. Failure is indicated by the state of *this.
fmtflags ios_base::setf ( fmtflags  fl)
inlineinherited

set format flags

Parameters
[in]flnew flags to be or'ed in
Returns
old flags
fmtflags ios_base::setf ( fmtflags  fl,
fmtflags  mask 
)
inlineinherited

modify format flags

Parameters
[in]maskflags to be removed
[in]flflags to be set after mask bits have been cleared
Returns
old flags
void ios::setstate ( iostate  state)
inlineinherited

Set iostate bits.

Parameters
[in]stateBitts to set.
void istream::skipWhite ( )
inherited

used to implement ws()

pos_type istream::tellg ( )
inlineinherited
Returns
the stream position
pos_type ostream::tellp ( )
inlineinherited
Returns
the stream position
void ios_base::unsetf ( fmtflags  fl)
inlineinherited

clear format flags

Parameters
[in]flflags to be cleared
Returns
old flags
unsigned ios_base::width ( )
inlineinherited
Returns
width
unsigned ios_base::width ( unsigned  n)
inlineinherited

set width

Parameters
[in]nnew width
Returns
old width

Member Data Documentation

const fmtflags ios_base::adjustfield = left | right | internal
staticinherited

mask for adjustfield

const openmode ios_base::app = 0X4
staticinherited

seek to end before each write

const openmode ios_base::ate = 0X8
staticinherited

open and seek to end immediately after opening

const iostate ios_base::badbit = 0X01
staticinherited

iostate bad bit for a nonrecoverable error.

const fmtflags ios_base::basefield = dec | hex | oct
staticinherited

mask for basefield

const openmode ios_base::binary = 0X10
staticinherited

perform input and output in binary mode (as opposed to text mode)

const fmtflags ios_base::boolalpha = 0x0100
staticinherited

use strings true/false for bool

const fmtflags ios_base::dec = 0x0008
staticinherited

base 10 flag

const iostate ios_base::eofbit = 0x02
staticinherited

iostate bit for end of file reached

const iostate ios_base::failbit = 0X04
staticinherited

iostate fail bit for nonfatal error

const iostate ios_base::goodbit = 0x00
staticinherited

iostate for no flags

const fmtflags ios_base::hex = 0x0010
staticinherited

base 16 flag

const openmode ios_base::in = 0X20
staticinherited

open for input

const fmtflags ios_base::internal = 0x0004
staticinherited

fill between sign/base prefix and number

const fmtflags ios_base::left = 0x0001
staticinherited

left adjust fields

const fmtflags ios_base::oct = 0x0020
staticinherited

base 8 flag

const openmode ios_base::out = 0X40
staticinherited

open for output

const fmtflags ios_base::right = 0x0002
staticinherited

right adjust fields

const fmtflags ios_base::showbase = 0x0200
staticinherited

use prefix 0X for hex and 0 for oct

const fmtflags ios_base::showpoint = 0x0400
staticinherited

always show '.' for floating numbers

const fmtflags ios_base::showpos = 0x0800
staticinherited

show + sign for nonnegative numbers

const fmtflags ios_base::skipws = 0x1000
staticinherited

skip initial white space

const openmode ios_base::trunc = 0X80
staticinherited

truncate an existing stream when opening

const fmtflags ios_base::uppercase = 0x4000
staticinherited

use uppercase letters in number representations


The documentation for this class was generated from the following file: