<class name="QTextStream" doc="/** <p>The <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> class provides a convenient interface for reading and writing text.</p> <p><a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> can operate on a <a href="QIODevice.html"><tt>QIODevice</tt></a>, a <a href="QByteArray.html"><tt>QByteArray</tt></a> or a <a href="%2E%2E/porting4.html#qstring"><tt>QString</tt></a>. Using <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a>'s streaming operators, you can conveniently read and write words, lines and numbers. For generating text, <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> supports formatting options for field padding and alignment, and formatting of numbers. Example:</p> <pre> QFile data(&quot;output.txt&quot;); if (data.open(QFile::WriteOnly | QFile::Truncate)) { QTextStream out(&amp;data); out &lt;&lt; &quot;Result: &quot; &lt;&lt; qSetFieldWidth(10) &lt;&lt; left &lt;&lt; 3.14 &lt;&lt; 2.7 &lt;&lt; endl; <span class="comment">// writes &quot;Result: 3.14 2.7 \n&quot;</span> }</pre> <p>It's also common to use <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> to read console input and write console output. <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> is locale aware, and will automatically decode standard input using the correct codec. Example:</p> <pre> QTextStream stream(stdin); QString line; do { line = stream.readLine(); } while (!line.isNull());</pre> <p>Note that you cannot use QTextStream::atEnd(), which returns true when you have reached the end of the data stream, with stdin.</p> <p>Besides using <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a>'s constructors, you can also set the device or string <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> operates on by calling <a href="QTextStream.html#setDevice(com.trolltech.qt.core.QIODevice)"><tt>setDevice</tt></a> or setString(). You can seek to a position by calling <a href="QTextStream.html#seek(long)"><tt>seek</tt></a>, and <a href="QTextStream.html#atEnd()"><tt>atEnd</tt></a> will return true when there is no data left to be read. If you call <a href="QTextStream.html#flush()"><tt>flush</tt></a>, <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> will empty all data from its write buffer into the device and call <a href="QTextStream.html#flush()"><tt>flush</tt></a> on the device.</p> <p>Internally, <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> uses a Unicode based buffer, and <a href="QTextCodec.html"><tt>QTextCodec</tt></a> is used by <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> to automatically support different character sets. By default, QTextCodec::codecForLocale() is used for reading and writing, but you can also set the codec by calling <a href="QTextStream.html#setCodec(com.trolltech.qt.core.QTextCodec)"><tt>setCodec</tt></a>. Automatic Unicode detection is also supported. When this feature is enabled (the default behavior), <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> will detect the UTF-16 BOM (Byte Order Mark) and switch to the appropriate UTF-16 codec when reading. <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> does not write a BOM by default, but you can enable this by calling <a href="QTextStream.html#setGenerateByteOrderMark(boolean)"><tt>setGenerateByteOrderMark</tt></a>(true). When <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> operates on a <a href="%2E%2E/porting4.html#qstring"><tt>QString</tt></a> directly, the codec is disabled.</p> <p>There are three general ways to use <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> when reading text files:</p> <ul> <li>Chunk by chunk, by calling <a href="QTextStream.html#readLine(long)"><tt>readLine</tt></a> or <a href="QTextStream.html#readAll()"><tt>readAll</tt></a>.</li> <li>Word by word. <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> supports streaming into QStrings, QByteArrays and char* buffers. Words are delimited by space, and leading white space is automatically skipped.</li> <li>Character by character, by streaming into QChar or char types. This method is often used for convenient input handling when parsing files, independent of character encoding and end-of-line semantics. To skip white space, call <a href="QTextStream.html#skipWhiteSpace()"><tt>skipWhiteSpace</tt></a>.</li> </ul> <p>Since the text stream uses a buffer, you should not read from the stream using the implementation of a superclass. For instance, if you have a <a href="QFile.html"><tt>QFile</tt></a> and read from it directly using QFile::readLine() instead of using the stream, the text stream's internal position will be out of sync with the file's position.</p> <p>By default, when reading numbers from a stream of text, <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> will automatically detect the number's base representation. For example, if the number starts with &quot;0x&quot;, it is assumed to be in hexadecimal form. If it starts with the digits 1-9, it is assumed to be in decimal form, and so on. You can set the integer base, thereby disabling the automatic detection, by calling <a href="QTextStream.html#setIntegerBase(int)"><tt>setIntegerBase</tt></a>. Example:</p> <pre> QTextStream in(&quot;0x50 0x20&quot;); int firstNumber, secondNumber; in &gt;&gt; firstNumber; <span class="comment">// firstNumber == 80</span> in &gt;&gt; dec &gt;&gt; secondNumber; <span class="comment">// secondNumber == 0</span> char ch; in &gt;&gt; ch; <span class="comment">// ch == 'x'</span></pre> <p><a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> supports many formatting options for generating text. You can set the field width and pad character by calling <a href="QTextStream.html#setFieldWidth(int)"><tt>setFieldWidth</tt></a> and <a href="QTextStream.html#setPadChar(char)"><tt>setPadChar</tt></a>. Use <a href="QTextStream.html#setFieldAlignment(com.trolltech.qt.core.QTextStream.FieldAlignment)"><tt>setFieldAlignment</tt></a> to set the alignment within each field. For real numbers, call <a href="QTextStream.html#setRealNumberNotation(com.trolltech.qt.core.QTextStream.RealNumberNotation)"><tt>setRealNumberNotation</tt></a> and <a href="QTextStream.html#setRealNumberPrecision(int)"><tt>setRealNumberPrecision</tt></a> to set the notation (<a href="QTextStream.html#RealNumberNotation-enum"><tt>SmartNotation</tt></a>, <a href="QTextStream.html#RealNumberNotation-enum"><tt>ScientificNotation</tt></a>, <a href="QTextStream.html#RealNumberNotation-enum"><tt>FixedNotation</tt></a>) and precision in digits of the generated number. Some extra number formatting options are also available through <a href="QTextStream.html#setNumberFlags(com.trolltech.qt.core.QTextStream.NumberFlags)"><tt>setNumberFlags</tt></a>.</p> <a name="qtextstream-manipulators"></a><p>Like <tt>&lt;iostream&gt;</tt> in the standard C++ library, <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> also defines several global manipulator functions:</p> <p><table align="center" cellpadding="2" cellspacing="1" border="0"> <thead><tr valign="top" class="qt-style"><th>Manipulator</th><th>Description</th></tr></thead> <tr valign="top" class="odd"><td><tt>bin</tt></td><td>Same as <a href="QTextStream.html#setIntegerBase(int)"><tt>setIntegerBase</tt></a>(2).</td></tr> <tr valign="top" class="even"><td><tt>oct</tt></td><td>Same as <a href="QTextStream.html#setIntegerBase(int)"><tt>setIntegerBase</tt></a>(8).</td></tr> <tr valign="top" class="odd"><td><tt>dec</tt></td><td>Same as <a href="QTextStream.html#setIntegerBase(int)"><tt>setIntegerBase</tt></a>(10).</td></tr> <tr valign="top" class="even"><td><tt>hex</tt></td><td>Same as <a href="QTextStream.html#setIntegerBase(int)"><tt>setIntegerBase</tt></a>(16).</td></tr> <tr valign="top" class="odd"><td><tt>showbase</tt></td><td>Same as <a href="QTextStream.html#setNumberFlags(com.trolltech.qt.core.QTextStream.NumberFlags)"><tt>setNumberFlags</tt></a>(<a href="QTextStream.html#numberFlags()"><tt>numberFlags</tt></a> | <a href="QTextStream.html#NumberFlag-enum"><tt>ShowBase</tt></a>).</td></tr> <tr valign="top" class="even"><td><tt>forcesign</tt></td><td>Same as <a href="QTextStream.html#setNumberFlags(com.trolltech.qt.core.QTextStream.NumberFlags)"><tt>setNumberFlags</tt></a>(<a href="QTextStream.html#numberFlags()"><tt>numberFlags</tt></a> | <a href="QTextStream.html#NumberFlag-enum"><tt>ForceSign</tt></a>).</td></tr> <tr valign="top" class="odd"><td><tt>forcepoint</tt></td><td>Same as <a href="QTextStream.html#setNumberFlags(com.trolltech.qt.core.QTextStream.NumberFlags)"><tt>setNumberFlags</tt></a>(<a href="QTextStream.html#numberFlags()"><tt>numberFlags</tt></a> | <a href="QTextStream.html#NumberFlag-enum"><tt>ForcePoint</tt></a>).</td></tr> <tr valign="top" class="even"><td><tt>noshowbase</tt></td><td>Same as <a href="QTextStream.html#setNumberFlags(com.trolltech.qt.core.QTextStream.NumberFlags)"><tt>setNumberFlags</tt></a>(<a href="QTextStream.html#numberFlags()"><tt>numberFlags</tt></a> &amp; ~<a href="QTextStream.html#NumberFlag-enum"><tt>ShowBase</tt></a>).</td></tr> <tr valign="top" class="odd"><td><tt>noforcesign</tt></td><td>Same as <a href="QTextStream.html#setNumberFlags(com.trolltech.qt.core.QTextStream.NumberFlags)"><tt>setNumberFlags</tt></a>(<a href="QTextStream.html#numberFlags()"><tt>numberFlags</tt></a> &amp; ~<a href="QTextStream.html#NumberFlag-enum"><tt>ForceSign</tt></a>).</td></tr> <tr valign="top" class="even"><td><tt>noforcepoint</tt></td><td>Same as <a href="QTextStream.html#setNumberFlags(com.trolltech.qt.core.QTextStream.NumberFlags)"><tt>setNumberFlags</tt></a>(<a href="QTextStream.html#numberFlags()"><tt>numberFlags</tt></a> &amp; ~<a href="QTextStream.html#NumberFlag-enum"><tt>ForcePoint</tt></a>).</td></tr> <tr valign="top" class="odd"><td><tt>uppercasebase</tt></td><td>Same as <a href="QTextStream.html#setNumberFlags(com.trolltech.qt.core.QTextStream.NumberFlags)"><tt>setNumberFlags</tt></a>(<a href="QTextStream.html#numberFlags()"><tt>numberFlags</tt></a> | <a href="QTextStream.html#NumberFlag-enum"><tt>UppercaseBase</tt></a>).</td></tr> <tr valign="top" class="even"><td><tt>uppercasedigits</tt></td><td>Same as <a href="QTextStream.html#setNumberFlags(com.trolltech.qt.core.QTextStream.NumberFlags)"><tt>setNumberFlags</tt></a>(<a href="QTextStream.html#numberFlags()"><tt>numberFlags</tt></a> | <a href="QTextStream.html#NumberFlag-enum"><tt>UppercaseDigits</tt></a>).</td></tr> <tr valign="top" class="odd"><td><tt>lowercasebase</tt></td><td>Same as <a href="QTextStream.html#setNumberFlags(com.trolltech.qt.core.QTextStream.NumberFlags)"><tt>setNumberFlags</tt></a>(<a href="QTextStream.html#numberFlags()"><tt>numberFlags</tt></a> &amp; ~<a href="QTextStream.html#NumberFlag-enum"><tt>UppercaseBase</tt></a>).</td></tr> <tr valign="top" class="even"><td><tt>lowercasedigits</tt></td><td>Same as <a href="QTextStream.html#setNumberFlags(com.trolltech.qt.core.QTextStream.NumberFlags)"><tt>setNumberFlags</tt></a>(<a href="QTextStream.html#numberFlags()"><tt>numberFlags</tt></a> &amp; ~<a href="QTextStream.html#NumberFlag-enum"><tt>UppercaseDigits</tt></a>).</td></tr> <tr valign="top" class="odd"><td><tt>fixed</tt></td><td>Same as <a href="QTextStream.html#setRealNumberNotation(com.trolltech.qt.core.QTextStream.RealNumberNotation)"><tt>setRealNumberNotation</tt></a>(<a href="QTextStream.html#RealNumberNotation-enum"><tt>FixedNotation</tt></a>).</td></tr> <tr valign="top" class="even"><td><tt>scientific</tt></td><td>Same as <a href="QTextStream.html#setRealNumberNotation(com.trolltech.qt.core.QTextStream.RealNumberNotation)"><tt>setRealNumberNotation</tt></a>(<a href="QTextStream.html#RealNumberNotation-enum"><tt>ScientificNotation</tt></a>).</td></tr> <tr valign="top" class="odd"><td><tt>left</tt></td><td>Same as <a href="QTextStream.html#setFieldAlignment(com.trolltech.qt.core.QTextStream.FieldAlignment)"><tt>setFieldAlignment</tt></a>(<a href="QTextStream.html#FieldAlignment-enum"><tt>AlignLeft</tt></a>).</td></tr> <tr valign="top" class="even"><td><tt>right</tt></td><td>Same as <a href="QTextStream.html#setFieldAlignment(com.trolltech.qt.core.QTextStream.FieldAlignment)"><tt>setFieldAlignment</tt></a>(<a href="QTextStream.html#FieldAlignment-enum"><tt>AlignRight</tt></a>).</td></tr> <tr valign="top" class="odd"><td><tt>center</tt></td><td>Same as <a href="QTextStream.html#setFieldAlignment(com.trolltech.qt.core.QTextStream.FieldAlignment)"><tt>setFieldAlignment</tt></a>(<a href="QTextStream.html#FieldAlignment-enum"><tt>AlignCenter</tt></a>).</td></tr> <tr valign="top" class="even"><td><tt>endl</tt></td><td>Same as operator&lt;&lt;('\n') and <a href="QTextStream.html#flush()"><tt>flush</tt></a>.</td></tr> <tr valign="top" class="odd"><td><tt>flush</tt></td><td>Same as <a href="QTextStream.html#flush()"><tt>flush</tt></a>.</td></tr> <tr valign="top" class="even"><td><tt>reset</tt></td><td>Same as <a href="QTextStream.html#reset()"><tt>reset</tt></a>.</td></tr> <tr valign="top" class="odd"><td><tt>ws</tt></td><td>Same as <a href="QTextStream.html#skipWhiteSpace()"><tt>skipWhiteSpace</tt></a>.</td></tr> <tr valign="top" class="even"><td><tt>bom</tt></td><td>Same as <a href="QTextStream.html#setGenerateByteOrderMark(boolean)"><tt>setGenerateByteOrderMark</tt></a>(true).</td></tr> </table></p> <p>In addition, Qt provides three global manipulators that take a parameter: qSetFieldWidth(), qSetPadChar(), and qSetRealNumberPrecision().</p> @see <a href="QDataStream.html"><tt>QDataStream</tt></a> @see <a href="QIODevice.html"><tt>QIODevice</tt></a> @see <a href="QFile.html"><tt>QFile</tt></a> @see <a href="QBuffer.html"><tt>QBuffer</tt></a> @see <a href="%2E%2E/network/QTcpSocket.html"><tt>QTcpSocket</tt></a> @see Codecs Example</tt> */"> <method name="public QTextStream(com.trolltech.qt.core.QIODevice device)" doc="/** <p>Constructs a <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> that operates on <tt>device</tt>.</p> */"/> <method name="public QTextStream()" doc="/** <p>Constructs a <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a>. Before you can use it for reading or writing, you must assign a device or a string.</p> @see <a href="QTextStream.html#setDevice(com.trolltech.qt.core.QIODevice)"><tt>setDevice</tt></a> @see <tt>setString</tt> */"/> <method name="public QTextStream(com.trolltech.qt.core.QByteArray array, com.trolltech.qt.core.QIODevice.OpenMode openMode)" doc="/** <p>Constructs a <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> that operates on <tt>array</tt>, using <tt>openMode</tt> to define the open mode. The array is accessed as read-only, regardless of the values in <tt>openMode</tt>.</p> <p>This constructor is convenient for working on constant strings. Example:</p> <pre> int main(int argc, char *argv[]) { <span class="comment">// read numeric arguments (123, 0x20, 4.5...)</span> for (int i = 1; i &lt; argc; ++i) { int number; QTextStream in(argv[i]); in &gt;&gt; number; ... } }</pre> */"/> <method name="public QTextStream(com.trolltech.qt.core.QByteArray array)" doc="/** <p>Equivalent to <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a>(<tt>array</tt>, QIODevice::ReadOnly). */"/> <method name="public final boolean atEnd()" doc="/** <p>Returns true if there is no more data to be read from the <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a>; otherwise returns false. This is similar to, but not the same as calling QIODevice::atEnd(), as <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> also takes into account its internal Unicode buffer.</p> */"/> <method name="public final boolean autoDetectUnicode()" doc="/** <p>Returns true if automatic Unicode detection is enabled; otherwise returns false.</p> @see <a href="QTextStream.html#setAutoDetectUnicode(boolean)"><tt>setAutoDetectUnicode</tt></a> @see <a href="QTextStream.html#setCodec(com.trolltech.qt.core.QTextCodec)"><tt>setCodec</tt></a> */"/> <method name="public final com.trolltech.qt.core.QTextCodec codec()" doc="/** <p>Returns the codec that is current assigned to the stream.</p> @see <a href="QTextStream.html#setCodec(com.trolltech.qt.core.QTextCodec)"><tt>setCodec</tt></a> @see <a href="QTextStream.html#setAutoDetectUnicode(boolean)"><tt>setAutoDetectUnicode</tt></a> */"/> <method name="public final com.trolltech.qt.core.QIODevice device()" doc="/** <p>Returns the current device associated with the <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a>, or 0 if no device has been assigned.</p> @see <a href="QTextStream.html#setDevice(com.trolltech.qt.core.QIODevice)"><tt>setDevice</tt></a> @see <tt>string</tt> */"/> <method name="public final com.trolltech.qt.core.QTextStream.FieldAlignment fieldAlignment()" doc="/** <p>Returns the current field alignment.</p> @see <a href="QTextStream.html#setFieldAlignment(com.trolltech.qt.core.QTextStream.FieldAlignment)"><tt>setFieldAlignment</tt></a> @see <a href="QTextStream.html#fieldWidth()"><tt>fieldWidth</tt></a> */"/> <method name="public final int fieldWidth()" doc="/** <p>Returns the current field width.</p> @see <a href="QTextStream.html#setFieldWidth(int)"><tt>setFieldWidth</tt></a> */"/> <method name="public final void flush()" doc="/** <p>Flushes any buffered data waiting to be written to the device.</p> <p>If <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> operates on a string, this function does nothing.</p> */"/> <method name="public final boolean generateByteOrderMark()" doc="/** <p>Returns true if <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> is set to generate the UTF-16 BOM (Byte Order Mark) when using a UTF-16 codec; otherwise returns false.</p> @see <a href="QTextStream.html#setGenerateByteOrderMark(boolean)"><tt>setGenerateByteOrderMark</tt></a> */"/> <method name="public final int integerBase()" doc="/** <p>Returns the current base of integers. 0 means that the base is detected when reading, or 10 (decimal) when generating numbers.</p> @see <a href="QTextStream.html#setIntegerBase(int)"><tt>setIntegerBase</tt></a> @see <tt>QString::number</tt> @see <a href="QTextStream.html#numberFlags()"><tt>numberFlags</tt></a> */"/> <method name="public final com.trolltech.qt.core.QTextStream.NumberFlags numberFlags()" doc="/** <p>Returns the current number flags.</p> @see <a href="QTextStream.html#setNumberFlags(com.trolltech.qt.core.QTextStream.NumberFlags)"><tt>setNumberFlags</tt></a> @see <a href="QTextStream.html#integerBase()"><tt>integerBase</tt></a> @see <a href="QTextStream.html#realNumberNotation()"><tt>realNumberNotation</tt></a> */"/> <method name="public final com.trolltech.qt.core.QTextStream writeByte(byte ch)" doc="/** <p>Converts <tt>ch</tt> from ASCII to a QChar, then writes it to the stream.</p> */"/> <method name="public final com.trolltech.qt.core.QTextStream writeLong(long i)" doc="/** <p>Writes the qlonglong <tt>i</tt> to the stream.</p> */"/> <method name="public final com.trolltech.qt.core.QTextStream writeInt(int i)" doc="/** <p>Writes the signed int <tt>i</tt> to the stream.</p> */"/> <method name="public final com.trolltech.qt.core.QTextStream writeDouble(double f)" doc="/** <p>Writes the double <tt>f</tt> to the stream.</p> */"/> <method name="public final com.trolltech.qt.core.QTextStream writeBoolean(boolean b)" doc="/** <p>This method is used internally by Qt Jambi. Do not use it in your applications.</p> */"/> <method name="public final com.trolltech.qt.core.QTextStream writeFloat(float f)" doc="/** <p>Writes the real number <tt>f</tt> to the stream, then returns a reference to the <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a>. By default, <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> stores it using <a href="QTextStream.html#RealNumberNotation-enum"><tt>SmartNotation</tt></a>, with up to 6 digits of precision. You can change the textual representation <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> will use for real numbers by calling <a href="QTextStream.html#setRealNumberNotation(com.trolltech.qt.core.QTextStream.RealNumberNotation)"><tt>setRealNumberNotation</tt></a>, <a href="QTextStream.html#setRealNumberPrecision(int)"><tt>setRealNumberPrecision</tt></a> and <a href="QTextStream.html#setNumberFlags(com.trolltech.qt.core.QTextStream.NumberFlags)"><tt>setNumberFlags</tt></a>.</p> @see <a href="QTextStream.html#setFieldWidth(int)"><tt>setFieldWidth</tt></a> @see <a href="QTextStream.html#setRealNumberNotation(com.trolltech.qt.core.QTextStream.RealNumberNotation)"><tt>setRealNumberNotation</tt></a> @see <a href="QTextStream.html#setRealNumberPrecision(int)"><tt>setRealNumberPrecision</tt></a> @see <a href="QTextStream.html#setNumberFlags(com.trolltech.qt.core.QTextStream.NumberFlags)"><tt>setNumberFlags</tt></a> */"/> <method name="public final char padChar()" doc="/** <p>Returns the current pad character.</p> @see <a href="QTextStream.html#setPadChar(char)"><tt>setPadChar</tt></a> @see <a href="QTextStream.html#setFieldWidth(int)"><tt>setFieldWidth</tt></a> */"/> <method name="public final long pos()" doc="/** <p>Returns the device position corresponding to the current position of the stream, or -1 if an error occurs (e.g&#x2e;, if there is no device or string, or if there's a device error).</p> <p>Because <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> is buffered, this function may have to seek the device to reconstruct a valid device position. This operation can be expensive, so you may want to avoid calling this function in a tight loop.</p> @see <a href="QTextStream.html#seek(long)"><tt>seek</tt></a> */"/> <method name="public final java.lang.String read(long maxlen)" doc="/** <p>Reads at most <tt>maxlen</tt> characters from the stream, and returns the data read as a <a href="%2E%2E/porting4.html#qstring"><tt>QString</tt></a>.</p> @see <a href="QTextStream.html#readAll()"><tt>readAll</tt></a> @see <a href="QTextStream.html#readLine(long)"><tt>readLine</tt></a> @see <tt>QIODevice::read</tt> */"/> <method name="public final java.lang.String readAll()" doc="/** <p>Reads the entire content of the stream, and returns it as a <a href="%2E%2E/porting4.html#qstring"><tt>QString</tt></a>. Avoid this function when working on large files, as it will consume a significant amount of memory.</p> <p>Calling <a href="QTextStream.html#readLine(long)"><tt>readLine</tt></a> is better if you do not know how much data is available.</p> @see <a href="QTextStream.html#readLine(long)"><tt>readLine</tt></a> */"/> <method name="public final java.lang.String readLine(long maxlen)" doc="/** <p>Reads one line of text from the stream, and returns it as a <a href="%2E%2E/porting4.html#qstring"><tt>QString</tt></a>. The maximum allowed line length is set to <tt>maxlen</tt>. If the stream contains lines longer than this, then the lines will be split after <tt>maxlen</tt> characters and returned in parts.</p> <p>If <tt>maxlen</tt> is 0, the lines can be of any length. A common value for <tt>maxlen</tt> is 75.</p> <p>The returned line has no trailing end-of-line characters (&quot;\n&quot; or &quot;\r\n&quot;), so calling QString::trimmed() is unnecessary.</p> <p>If the stream has read to the end of the file, <a href="QTextStream.html#readLine(long)"><tt>readLine</tt></a> will return a null <a href="%2E%2E/porting4.html#qstring"><tt>QString</tt></a>. For strings, or for devices that support it, you can explicitly test for the end of the stream using <a href="QTextStream.html#atEnd()"><tt>atEnd</tt></a>.</p> @see <a href="QTextStream.html#readAll()"><tt>readAll</tt></a> @see <tt>QIODevice::readLine</tt> */"/> <method name="public final java.lang.String readLine()" doc="/** <p>Equivalent to <a href="QTextStream.html#readLine(long)"><tt>readLine</tt></a>(0). */"/> <method name="public final com.trolltech.qt.core.QTextStream.RealNumberNotation realNumberNotation()" doc="/** <p>Returns the current real number notation.</p> @see <a href="QTextStream.html#setRealNumberNotation(com.trolltech.qt.core.QTextStream.RealNumberNotation)"><tt>setRealNumberNotation</tt></a> @see <a href="QTextStream.html#realNumberPrecision()"><tt>realNumberPrecision</tt></a> @see <a href="QTextStream.html#numberFlags()"><tt>numberFlags</tt></a> @see <a href="QTextStream.html#integerBase()"><tt>integerBase</tt></a> */"/> <method name="public final int realNumberPrecision()" doc="/** <p>Returns the current real number precision, or the number of fraction digits <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> will write when generating real numbers.</p> @see <a href="QTextStream.html#setRealNumberPrecision(int)"><tt>setRealNumberPrecision</tt></a> @see <a href="QTextStream.html#setRealNumberNotation(com.trolltech.qt.core.QTextStream.RealNumberNotation)"><tt>setRealNumberNotation</tt></a> @see <a href="QTextStream.html#realNumberNotation()"><tt>realNumberNotation</tt></a> @see <a href="QTextStream.html#numberFlags()"><tt>numberFlags</tt></a> @see <a href="QTextStream.html#integerBase()"><tt>integerBase</tt></a> */"/> <method name="public final void reset()" doc="/** <p>Resets <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a>'s formatting options, bringing it back to its original constructed state. The device, string and any buffered data is left untouched.</p> */"/> <method name="public final void resetStatus()" doc="/** <p>Resets the status of the text stream.</p> @see <tt>QTextStream::Status</tt> @see <a href="QTextStream.html#status()"><tt>status</tt></a> @see <a href="QTextStream.html#setStatus(com.trolltech.qt.core.QTextStream.Status)"><tt>setStatus</tt></a> */"/> <method name="public final boolean seek(long pos)" doc="/** <p>Seeks to the position <tt>pos</tt> in the device. Returns true on success; otherwise returns false.</p> */"/> <method name="public final void setAutoDetectUnicode(boolean enabled)" doc="/** <p>If <tt>enabled</tt> is true, <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> will attempt to detect Unicode encoding by peeking into the stream data to see if it can find the UTF-16 BOM (Byte Order Mark). If this mark is found, <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> will replace the current codec with the UTF-16 codec.</p> <p>This function can be used together with <a href="QTextStream.html#setCodec(com.trolltech.qt.core.QTextCodec)"><tt>setCodec</tt></a>. It is common to set the codec to UTF-8, and then enable UTF-16 detection.</p> @see <a href="QTextStream.html#autoDetectUnicode()"><tt>autoDetectUnicode</tt></a> @see <a href="QTextStream.html#setCodec(com.trolltech.qt.core.QTextCodec)"><tt>setCodec</tt></a> */"/> <method name="public final void setCodec(com.trolltech.qt.core.QTextCodec codec)" doc="/** <p>Sets the codec for this stream to <tt>codec</tt>. The codec is used for decoding any data that is read from the assigned device, and for encoding any data that is written. By default, QTextCodec::codecForLocale() is used, and automatic unicode detection is enabled.</p> <p>If <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> operates on a string, this function does nothing.</p> @see <a href="QTextStream.html#codec()"><tt>codec</tt></a> @see <a href="QTextStream.html#setAutoDetectUnicode(boolean)"><tt>setAutoDetectUnicode</tt></a> */"/> <method name="public final void setDevice(com.trolltech.qt.core.QIODevice device)" doc="/** <p>Sets the current device to <tt>device</tt>. If a device has already been assigned, <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> will call <a href="QTextStream.html#flush()"><tt>flush</tt></a> before the old device is replaced.</p> @see <a href="QTextStream.html#device()"><tt>device</tt></a> @see <tt>setString</tt> */"/> <method name="public final void setFieldAlignment(com.trolltech.qt.core.QTextStream.FieldAlignment alignment)" doc="/** <p>Sets the field alignment to <tt>alignment</tt>. When used together with <a href="QTextStream.html#setFieldWidth(int)"><tt>setFieldWidth</tt></a>, this function allows you to generate formatted output with text aligned to the left, to the right or center aligned.</p> @see <a href="QTextStream.html#fieldAlignment()"><tt>fieldAlignment</tt></a> @see <a href="QTextStream.html#setFieldWidth(int)"><tt>setFieldWidth</tt></a> */"/> <method name="public final void setFieldWidth(int width)" doc="/** <p>Sets the current field width to <tt>width</tt>. If <tt>width</tt> is 0 (the default), the field width is equal to the length of the generated text.</p> @see <a href="QTextStream.html#fieldWidth()"><tt>fieldWidth</tt></a> @see <a href="QTextStream.html#setPadChar(char)"><tt>setPadChar</tt></a> */"/> <method name="public final void setGenerateByteOrderMark(boolean generate)" doc="/** <p>If <tt>generate</tt> is true and a UTF-16 codec is used, <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> will insert the BOM (Byte Order Mark) before any data has been written to the device. If <tt>generate</tt> is false, no BOM will be inserted. This function must be called before any data is written. Otherwise, it does nothing.</p> @see <a href="QTextStream.html#generateByteOrderMark()"><tt>generateByteOrderMark</tt></a> @see <tt>bom</tt> */"/> <method name="public final void setIntegerBase(int base)" doc="/** <p>Sets the base of integers to <tt>base</tt>, both for reading and for generating numbers. <tt>base</tt> can be either 2 (binary), 8 (octal), 10 (decimal) or 16 (hexadecimal). If <tt>base</tt> is 0, <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> will attempt to detect the base by inspecting the data on the stream. When generating numbers, <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> assumes base is 10 unless the base has been set explicitly.</p> @see <a href="QTextStream.html#integerBase()"><tt>integerBase</tt></a> @see <tt>QString::number</tt> @see <a href="QTextStream.html#setNumberFlags(com.trolltech.qt.core.QTextStream.NumberFlags)"><tt>setNumberFlags</tt></a> */"/> <method name="public final void setNumberFlags(com.trolltech.qt.core.QTextStream.NumberFlags flags)" doc="/** <p>Sets the current number flags to <tt>flags</tt>. <tt>flags</tt> is a set of flags from the <a href="QTextStream.html#NumberFlag-enum"><tt>NumberFlag</tt></a> enum, and describes options for formatting generated code (e.g&#x2e;, whether or not to always write the base or sign of a number).</p> @see <a href="QTextStream.html#numberFlags()"><tt>numberFlags</tt></a> @see <a href="QTextStream.html#setIntegerBase(int)"><tt>setIntegerBase</tt></a> @see <a href="QTextStream.html#setRealNumberNotation(com.trolltech.qt.core.QTextStream.RealNumberNotation)"><tt>setRealNumberNotation</tt></a> */"/> <method name="public final void setPadChar(char ch)" doc="/** <p>Sets the pad character to <tt>ch</tt>. The default value is the ASCII space character (' '), or QChar(0x20). This character is used to fill in the space in fields when generating text.</p> <p>Example:</p> <pre> QString s; QTextStream out(&amp;s); out.setFieldWidth(10); out.setPadChar('-'); out &lt;&lt; &quot;Qt&quot; &lt;&lt; endl &lt;&lt; &quot;rocks!&quot; &lt;&lt; endl;</pre> <p>Output:</p> <pre> ----Qt---- --rocks!--</pre> @see <a href="QTextStream.html#padChar()"><tt>padChar</tt></a> @see <a href="QTextStream.html#setFieldWidth(int)"><tt>setFieldWidth</tt></a> */"/> <method name="public final void setRealNumberNotation(com.trolltech.qt.core.QTextStream.RealNumberNotation notation)" doc="/** <p>Sets the real number notation to <tt>notation</tt> (<a href="QTextStream.html#RealNumberNotation-enum"><tt>SmartNotation</tt></a>, <a href="QTextStream.html#RealNumberNotation-enum"><tt>FixedNotation</tt></a>, <a href="QTextStream.html#RealNumberNotation-enum"><tt>ScientificNotation</tt></a>). When reading and generating numbers, <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> uses this value to detect the formatting of real numbers.</p> @see <a href="QTextStream.html#realNumberNotation()"><tt>realNumberNotation</tt></a> @see <a href="QTextStream.html#setRealNumberPrecision(int)"><tt>setRealNumberPrecision</tt></a> @see <a href="QTextStream.html#setNumberFlags(com.trolltech.qt.core.QTextStream.NumberFlags)"><tt>setNumberFlags</tt></a> @see <a href="QTextStream.html#setIntegerBase(int)"><tt>setIntegerBase</tt></a> */"/> <method name="public final void setRealNumberPrecision(int precision)" doc="/** <p>Sets the precision of real numbers to <tt>precision</tt>. This value describes the number of fraction digits <a href="QTextStream.html#QTextStream(com.trolltech.qt.core.QByteArray, com.trolltech.qt.core.QIODevice.OpenMode)"><tt>QTextStream</tt></a> should write when generating real numbers.</p> @see <a href="QTextStream.html#realNumberPrecision()"><tt>realNumberPrecision</tt></a> @see <a href="QTextStream.html#setRealNumberNotation(com.trolltech.qt.core.QTextStream.RealNumberNotation)"><tt>setRealNumberNotation</tt></a> */"/> <method name="public final void setStatus(com.trolltech.qt.core.QTextStream.Status status)" doc="/** <p>Sets the status of the text stream to the <tt>status</tt> given.</p> @see <a href="QTextStream.html#Status-enum">Status</tt></a> @see <a href="QTextStream.html#status()"><tt>status</tt></a> @see <a href="QTextStream.html#resetStatus()"><tt>resetStatus</tt></a> */"/> <method name="public final void skipWhiteSpace()" doc="/** <p>Reads and discards whitespace from the stream until either a non-space character is detected, or until <a href="QTextStream.html#atEnd()"><tt>atEnd</tt></a> returns true. This function is useful when reading a stream character by character.</p> <p>Whitespace characters are all characters for which QChar::isSpace() returns true.</p> @see <tt>operator&gt;&gt;</tt> */"/> <method name="public final com.trolltech.qt.core.QTextStream.Status status()" doc="/** <p>Returns the status of the text stream.</p> @see <tt>QTextStream::Status</tt> @see <a href="QTextStream.html#setStatus(com.trolltech.qt.core.QTextStream.Status)"><tt>setStatus</tt></a> @see <a href="QTextStream.html#resetStatus()"><tt>resetStatus</tt></a> */"/> <enum name="RealNumberNotation" doc="/** <p>This enum specifies which notations to use for expressing <tt>float</tt> and <tt>double</tt> as strings.</p> @see <a href="QTextStream.html#setRealNumberNotation(com.trolltech.qt.core.QTextStream.RealNumberNotation)"><tt>setRealNumberNotation</tt></a> */"> <enum-value name="SmartNotation" doc="/** <p>Scientific or fixed-point notation, depending on which makes most sense (<tt>printf()</tt>'s <tt>%g</tt> flag).</p> */"/> <enum-value name="FixedNotation" doc="/** <p>Fixed-point notation (<tt>printf()</tt>'s <tt>%f</tt> flag).</p> */"/> <enum-value name="ScientificNotation" doc="/** <p>Scientific notation (<tt>printf()</tt>'s <tt>%e</tt> flag).</p> */"/> </enum> <enum name="NumberFlag" doc="/** <p>This enum specifies various flags that can be set to affect the output of integers, <tt>float</tt>s, and <tt>double</tt>s.</p> @see <a href="QTextStream.html#setNumberFlags(com.trolltech.qt.core.QTextStream.NumberFlags)"><tt>setNumberFlags</tt></a> */"> <enum-value name="ShowBase" doc="/** <p>Show the base as a prefix if the base is 16 (&quot;0x&quot;), 8 (&quot;0&quot;), or 2 (&quot;0b&quot;).</p> */"/> <enum-value name="ForcePoint" doc="/** <p>Always put the decimal separator in numbers, even if there are no decimals.</p> */"/> <enum-value name="ForceSign" doc="/** <p>Always put the sign in numbers, even for positive numbers.</p> */"/> <enum-value name="UppercaseBase" doc="/** <p>Use uppercase versions of base prefixes (&quot;0X&quot;, &quot;0B&quot;).</p> */"/> <enum-value name="UppercaseDigits" doc="/** <p>Use uppercase letters for expressing digits 10 to 35 instead of lowercase.</p> */"/> </enum> <enum name="FieldAlignment" doc="/** <p>This enum specifies how to align text in fields when the field is wider than the text that occupies it.</p> @see <a href="QTextStream.html#setFieldAlignment(com.trolltech.qt.core.QTextStream.FieldAlignment)"><tt>setFieldAlignment</tt></a> */"> <enum-value name="AlignLeft" doc="/** <p>Pad on the right side of fields.</p> */"/> <enum-value name="AlignRight" doc="/** <p>Pad on the left side of fields.</p> */"/> <enum-value name="AlignCenter" doc="/** <p>Pad on both sides of field.</p> */"/> <enum-value name="AlignAccountingStyle" doc="/** <p>Same as <a href="QTextStream.html#FieldAlignment-enum"><tt>AlignRight</tt></a>, except that the sign of a number is flush left.</p> */"/> </enum> <enum name="Status" doc="/** <p>This enum describes the current status of the text stream.</p> @see <a href="QTextStream.html#status()"><tt>status</tt></a> */"> <enum-value name="Ok" doc="/** <p>The text stream is operating normally.</p> */"/> <enum-value name="ReadPastEnd" doc="/** <p>The text stream has read past the end of the data in the underlying device.</p> */"/> <enum-value name="ReadCorruptData" doc="/** <p>The text stream has read corrupt data.</p> */"/> </enum> </class>