1 \section{\class{wxDataInputStream
}}\label{wxdatainputstream
}
3 This class provides functions that read binary data types in a
4 portable way. Data can be read in either big-endian or little-endian
5 format, little-endian being the default on all architectures.
7 If you want to read data from text files (or streams) use
8 \helpref{wxTextInputStream
}{wxtextinputstream
} instead.
10 The >> operator is overloaded and you can use this class like a standard C++ iostream.
11 Note, however, that the arguments are the fixed size types wxUint32, wxInt32 etc
12 and on a typical
32-bit computer, none of these match to the "long" type (wxInt32
13 is defined as signed int on
32-bit architectures) so that you cannot use long. To avoid
14 problems (here and elsewhere), make use of the wxInt32, wxUint32, etc types.
19 wxFileInputStream input( "mytext.dat" );
20 wxDataInputStream store( input );
25 store >> i1; // read a
8 bit integer.
26 store >> i1 >> f2; // read a
8 bit integer followed by float.
27 store >> line; // read a text line
30 See also
\helpref{wxDataOutputStream
}{wxdataoutputstream
}.
32 \wxheading{Derived from
}
36 \wxheading{Include files
}
40 \latexignore{\rtfignore{\wxheading{Members
}}}
42 \membersection{wxDataInputStream::wxDataInputStream
}\label{wxdatainputstreamconstr
}
44 \func{}{wxDataInputStream
}{\param{wxInputStream\&
}{ stream
}}
46 \func{}{wxDataInputStream
}{\param{wxInputStream\&
}{ stream
},
\param{wxMBConv\&
}{ conv = wxMBConvUTF8
}}
48 Constructs a datastream object from an input stream. Only read methods will
49 be available. The second form is only available in Unicode build of wxWindows.
51 \wxheading{Parameters
}
53 \docparam{stream
}{The input stream.
}
55 \docparam{conv
}{Charset conversion object object used to decode strings in Unicode
56 mode (see
\helpref{wxDataInputStream::ReadString
}{wxdatainputstreamreadstring
}
57 documentation for detailed description). Note that you must not destroy
58 {\it conv
} before you destroy this wxDataInputStream instance!
}
60 \membersection{wxDataInputStream::
\destruct{wxDataInputStream
}}
62 \func{}{\destruct{wxDataInputStream
}}{\void}
64 Destroys the wxDataInputStream object.
66 \membersection{wxDataInputStream::BigEndianOrdered
}
68 \func{void
}{BigEndianOrdered
}{\param{bool
}{ be
\_order}}
70 If
{\it be
\_order} is true, all data will be read in big-endian
71 order, such as written by programs on a big endian architecture
72 (e.g. Sparc) or written by Java-Streams (which always use
75 \membersection{wxDataInputStream::Read8
}
77 \func{wxUint8
}{Read8
}{\void}
79 Reads a single byte from the stream.
81 \membersection{wxDataInputStream::Read16
}
83 \func{wxUint16
}{Read16
}{\void}
85 Reads a
16 bit unsigned integer from the stream.
87 \membersection{wxDataInputStream::Read32
}
89 \func{wxUint32
}{Read32
}{\void}
91 Reads a
32 bit unsigned integer from the stream.
93 \membersection{wxDataInputStream::Read64
}
95 \func{wxUint64
}{Read64
}{\void}
97 Reads a
64 bit unsigned integer from the stream.
99 \membersection{wxDataInputStream::ReadDouble
}
101 \func{double
}{ReadDouble
}{\void}
103 Reads a double (IEEE encoded) from the stream.
105 \membersection{wxDataInputStream::ReadString
}\label{wxdatainputstreamreadstring
}
107 \func{wxString
}{ReadString
}{\void}
109 Reads a string from a stream. Actually, this function first reads a long
110 integer specifying the length of the string (without the last null character)
111 and then reads the string.
113 In Unicode build of wxWindows, the fuction first reads multibyte (char*)
114 string from the stream and then converts it to Unicode using the
{\it conv
}
115 object passed to constructor and returns the result as wxString. You are
116 responsible for using the same convertor as when writing the stream.
118 See also
\helpref{wxDataOutputStream::WriteString
}{wxdataoutputstreamwritestring
}.