\section{\class{wxDataOutputStream}}\label{wxdataoutputstream}

This class provides functions that write binary data types in a
portable way. Data can be written in either big-endian or little-endian
format, little-endian being the default on all architectures.

If you want to write data to text files (or streams) use 
\helpref{wxTextOutputStream}{wxtextoutputstream} instead.

The << operator is overloaded and you can use this class like a standard 
C++ iostream. See \helpref{wxDataInputStream}{wxdatainputstream} for its 
usage and caveats.

See also \helpref{wxDataInputStream}{wxdatainputstream}. 

\wxheading{Derived from}

None

\latexignore{\rtfignore{\wxheading{Members}}}

\membersection{wxDataOutputStream::wxDataOutputStream}\label{wxdataoutputstreamconstr}

\func{}{wxDataOutputStream}{\param{wxOutputStream\&}{ stream}}

\func{}{wxDataOutputStream}{\param{wxOutputStream\&}{ stream}, \param{wxMBConv\&}{ conv = wxMBConvUTF8}}

Constructs a datastream object from an output stream. Only write methods will
be available. The second form is only available in Unicode build of wxWindows.

\wxheading{Parameters}

\docparam{stream}{The output stream.}

\docparam{conv}{Charset conversion object object used to encoding Unicode 
strings before writing them to the stream
in Unicode mode (see \helpref{wxDataOutputStream::WriteString}{wxdataoutputstreamwritestring}
documentation for detailed description). Note that you must not destroy
{\it conv} before you destroy this wxDataOutputStream instance! It is
recommended to use default value (UTF-8).}

\membersection{wxDataOutputStream::\destruct{wxDataOutputStream}}

\func{}{\destruct{wxDataOutputStream}}{\void}

Destroys the wxDataOutputStream object.

\membersection{wxDataOutputStream::BigEndianOrdered}

\func{void}{BigEndianOrdered}{\param{bool}{ be\_order}}

If {\it be\_order} is true, all data will be written in big-endian
order, e.g. for reading on a Sparc or from Java-Streams (which
always use big-endian order), otherwise data will be written in
little-endian order.
 
\membersection{wxDataOutputStream::Write8}

\func{void}{Write8}{{\param wxUint8 }{i8}}

Writes the single byte {\it i8} to the stream.

\membersection{wxDataOutputStream::Write16}

\func{void}{Write16}{{\param wxUint16 }{i16}}

Writes the 16 bit unsigned integer {\it i16} to the stream.

\membersection{wxDataOutputStream::Write32}

\func{void}{Write32}{{\param wxUint32 }{i32}}

Writes the 32 bit unsigned integer {\it i32} to the stream.

\membersection{wxDataOutputStream::Write64}

\func{void}{Write64}{{\param wxUint64 }{i64}}

Writes the 64 bit unsigned integer {\it i64} to the stream.

\membersection{wxDataOutputStream::WriteDouble}

\func{void}{WriteDouble}{{\param double }{f}}

Writes the double {\it f} to the stream using the IEEE format.

\membersection{wxDataOutputStream::WriteString}\label{wxdataoutputstreamwritestring}

\func{void}{WriteString}{{\param const wxString\&}{string}}

Writes {\it string} to the stream. Actually, this method writes the size of
the string before writing {\it string} itself.

In ANSI build of wxWindows, the string is written to the stream in exactly
same way it is represented in memory. In Unicode build, however, the string
is first converted to multibyte representation with {\it conv} object passed
to stream's constructor (consequently, ANSI application can read data 
written by Unicode application, as long as they agree on encoding) and this
representation is written to the stream. UTF-8 is used by default.

