com.trolltech.qt.core
Class QTextStream

java.lang.Object
  extended by com.trolltech.qt.internal.QSignalEmitterInternal
      extended by com.trolltech.qt.QSignalEmitter
          extended by com.trolltech.qt.QtJambiObject
              extended by com.trolltech.qt.core.QTextStream
All Implemented Interfaces:
QtJambiInterface

public class QTextStream
extends QtJambiObject

The QTextStream class provides a convenient interface for reading and writing text. QTextStream can operate on a QIODevice, a QByteArray or a QString. Using QTextStream's streaming operators, you can conveniently read and write words, lines and numbers. For generating text, QTextStream supports formatting options for field padding and alignment, and formatting of numbers. Example:

        QFile data = new QFile("output.txt");
        if (data.open(QIODevice.OpenModeFlag.WriteOnly, QIODevice.OpenModeFlag.Truncate)) {
            QTextStream out = new QTextStream(data);
            out.writeString("Result: ");
            out.setFieldWidth(10);
            out.setFieldAlignment(QTextStream.FieldAlignment.AlignLeft);
            out.writeDouble(3.14).writeDouble(2.7).writeString("\n");
            // writes "Result: 3.14      2.7       \n"
        }
It's also common to use QTextStream to read console input and write console output. QTextStream is locale aware, and will automatically decode standard input using the correct codec. Example:
        QTextStream stream(stdin);
        Stringsline;
        do {
            line = stream.readLine();
        } while (!line.isNull());
Note that you cannot use QTextStream::atEnd(), which returns true when you have reached the end of the data stream, with stdin.

Besides using QTextStream's constructors, you can also set the device or string QTextStream operates on by calling setDevice() or setString(). You can seek to a position by calling seek(), and atEnd() will return true when there is no data left to be read. If you call flush(), QTextStream will empty all data from its write buffer into the device and call flush() on the device.

Internally, QTextStream uses a Unicode based buffer, and QTextCodec is used by QTextStream 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 setCodec(). Automatic Unicode detection is also supported. When this feature is enabled (the default behavior), QTextStream will detect the UTF-16 or the UTF-32 BOM (Byte Order Mark) and switch to the appropriate UTF codec when reading. QTextStream does not write a BOM by default, but you can enable this by calling setGenerateByteOrderMark(true). When QTextStream operates on a QString directly, the codec is disabled.

There are three general ways to use QTextStream when reading text files:

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 QFile 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.

By default, when reading numbers from a stream of text, QTextStream will automatically detect the number's base representation. For example, if the number starts with "0x", 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 setIntegerBase(). Example:

        QTextStream in = new QTextStream(new QByteArray("0x50 0x20"));
        int firstNumber, secondNumber;

        firstNumber = in.readInt();     // firstNumber == 80
        in.setIntegerBase(10);
        secondNumber = in.readInt();    // secondNumber == 0

        String str;
        str = in.readString();          // str == "x20"
QTextStream supports many formatting options for generating text. You can set the field width and pad character by calling setFieldWidth() and setPadChar(). Use setFieldAlignment() to set the alignment within each field. For real numbers, call setRealNumberNotation() and setRealNumberPrecision() to set the notation (SmartNotation , ScientificNotation , FixedNotation ) and precision in digits of the generated number. Some extra number formatting options are also available through setNumberFlags(). Like <iostream> in the standard C++ library, QTextStream also defines several global manipulator functions:
Manipulator
Description
bin Same as setIntegerBase(2).
oct Same as setIntegerBase(8).
dec Same as setIntegerBase(10).
hex Same as setIntegerBase(16).
showbase Same as setNumberFlags(numberFlags() | ShowBase ).
forcesign Same as setNumberFlags(numberFlags() | ForceSign ).
forcepoint Same as setNumberFlags(numberFlags() | ForcePoint ).
noshowbase Same as setNumberFlags(numberFlags() & ~ShowBase ).
noforcesign Same as setNumberFlags(numberFlags() & ~ForceSign ).
noforcepoint Same as setNumberFlags(numberFlags() & ~ForcePoint ).
uppercasebase Same as setNumberFlags(numberFlags() | UppercaseBase ).
uppercasedigits Same as setNumberFlags(numberFlags() | UppercaseDigits ).
lowercasebase Same as setNumberFlags(numberFlags() & ~UppercaseBase ).
lowercasedigits Same as setNumberFlags(numberFlags() & ~UppercaseDigits ).
fixed Same as setRealNumberNotation(FixedNotation ).
scientific Same as setRealNumberNotation(ScientificNotation ).
left Same as setFieldAlignment(AlignLeft ).
right Same as setFieldAlignment(AlignRight ).
center Same as setFieldAlignment(AlignCenter ).
endl Same as operator<<('\n') and flush().
flush Same as flush().
reset Same as reset().
ws Same as skipWhiteSpace().
bom Same as setGenerateByteOrderMark(true).
In addition, Qt provides three global manipulators that take a parameter: qSetFieldWidth(), qSetPadChar(), and qSetRealNumberPrecision().

See also:
QDataStream, QIODevice, QFile, QBuffer, QTcpSocket, and Codecs Example.


Nested Class Summary
static class QTextStream.FieldAlignment
          This enum specifies how to align text in fields when the field is wider than the text that occupies it.
static class QTextStream.NumberFlag
          This enum specifies various flags that can be set to affect the output of integers, floats, and doubles.
static class QTextStream.NumberFlags
           
static class QTextStream.RealNumberNotation
          This enum specifies which notations to use for expressing float and double as strings.
static class QTextStream.Status
          This enum describes the current status of the text stream.
 
Nested classes/interfaces inherited from class com.trolltech.qt.QSignalEmitter
QSignalEmitter.AbstractSignal, QSignalEmitter.PrivateSignal0, QSignalEmitter.PrivateSignal1, QSignalEmitter.PrivateSignal2, QSignalEmitter.PrivateSignal3, QSignalEmitter.PrivateSignal4, QSignalEmitter.PrivateSignal5, QSignalEmitter.PrivateSignal6, QSignalEmitter.PrivateSignal7, QSignalEmitter.PrivateSignal8, QSignalEmitter.PrivateSignal9, QSignalEmitter.Signal0, QSignalEmitter.Signal1, QSignalEmitter.Signal2, QSignalEmitter.Signal3, QSignalEmitter.Signal4, QSignalEmitter.Signal5, QSignalEmitter.Signal6, QSignalEmitter.Signal7, QSignalEmitter.Signal8, QSignalEmitter.Signal9
 
Nested classes/interfaces inherited from class com.trolltech.qt.internal.QSignalEmitterInternal
com.trolltech.qt.internal.QSignalEmitterInternal.AbstractSignalInternal
 
Field Summary
 
Fields inherited from class com.trolltech.qt.internal.QSignalEmitterInternal
currentSender
 
Constructor Summary
QTextStream()
          Constructs a QTextStream.
QTextStream(QByteArray array)
          Constructs a QTextStream that operates on array, using openMode to define the open mode.
QTextStream(QByteArray array, QIODevice.OpenMode openMode)
          Constructs a QTextStream that operates on array, using openMode to define the open mode.
QTextStream(QByteArray array, QIODevice.OpenModeFlag[] openMode)
           
QTextStream(QIODevice device)
          Constructs a QTextStream that operates on device.
 
Method Summary
 boolean atEnd()
          Returns true if there is no more data to be read from the QTextStream; otherwise returns false.
 boolean autoDetectUnicode()
          Returns true if automatic Unicode detection is enabled; otherwise returns false.
 QTextCodec codec()
          Returns the codec that is current assigned to the stream.
static QTextStream createStringStream(java.lang.String string, QIODevice.OpenMode openMode)
          This function makes the text tream operate on a string instead of a QIODevice.
 QIODevice device()
          Returns the current device associated with the QTextStream, or 0 if no device has been assigned.
 QTextStream.FieldAlignment fieldAlignment()
          Returns the current field alignment.
 int fieldWidth()
          Returns the current field width.
 void flush()
          Flushes any buffered data waiting to be written to the device.
 boolean generateByteOrderMark()
          Returns true if QTextStream is set to generate the UTF BOM (Byte Order Mark) when using a UTF codec; otherwise returns false.
 int integerBase()
          Returns the current base of integers.
 QLocale locale()
          Returns the locale for this stream.
 QTextStream.NumberFlags numberFlags()
          Returns the current number flags.
 char padChar()
          Returns the current pad character.
 long pos()
          Returns the device position corresponding to the current position of the stream, or -1 if an error occurs (e.
 java.lang.String read(long maxlen)
          Reads at most maxlen characters from the stream, and returns the data read as a QString.
 java.lang.String readAll()
          Reads the entire content of the stream, and returns it as a QString.
 byte readByte()
          Reads a byte from the stream.
 char readChar()
          Reads a characther from the stream.
 double readDouble()
          Reads a double from the stream.
 float readFloat()
          Reads a float from the stream.
 int readInt()
          Reads an int from the stream.
 java.lang.String readLine()
          Reads one line of text from the stream, and returns it as a QString.
 java.lang.String readLine(long maxlen)
          Reads one line of text from the stream, and returns it as a QString.
 long readLong()
          Reads a long from the stream.
 short readShort()
          Reads a short from the stream
 java.lang.String readString()
          Reads a String from the stream.
 QTextStream.RealNumberNotation realNumberNotation()
          Returns the current real number notation.
 int realNumberPrecision()
          Returns the current real number precision, or the number of fraction digits QTextStream will write when generating real numbers.
 void reset()
          Resets QTextStream's formatting options, bringing it back to its original constructed state.
 void resetStatus()
          Resets the status of the text stream.
 boolean seek(long pos)
          Seeks to the position pos in the device.
 void setAutoDetectUnicode(boolean enabled)
          If enabled is true, QTextStream will attempt to detect Unicode encoding by peeking into the stream data to see if it can find the UTF-16 or UTF-32 BOM (Byte Order Mark).
 void setCodec(QTextCodec codec)
          Sets the codec for this stream to codec.
 void setCodec(java.lang.String codecName)
          Sets the codec for this stream to the QTextCodec for the encoding specified by codecName.
 void setDevice(QIODevice device)
          Sets the current device to device.
 void setFieldAlignment(QTextStream.FieldAlignment alignment)
          Sets the field alignment to mode.
 void setFieldWidth(int width)
          Sets the current field width to width.
 void setGenerateByteOrderMark(boolean generate)
          If generate is true and a UTF codec is used, QTextStream will insert the BOM (Byte Order Mark) before any data has been written to the device.
 void setIntegerBase(int base)
          Sets the base of integers to base, both for reading and for generating numbers.
 void setLocale(QLocale locale)
          Sets the locale for this stream to locale.
 void setNumberFlags(QTextStream.NumberFlag[] flags)
           
 void setNumberFlags(QTextStream.NumberFlags flags)
          Sets the current number flags to flags.
 void setPadChar(char ch)
          Sets the pad character to ch.
 void setRealNumberNotation(QTextStream.RealNumberNotation notation)
          Sets the real number notation to notation (SmartNotation , FixedNotation , ScientificNotation ).
 void setRealNumberPrecision(int precision)
          Sets the precision of real numbers to precision.
 void setStatus(QTextStream.Status status)
          Sets the status of the text stream to the status given.
 void skipWhiteSpace()
          Reads and discards whitespace from the stream until either a non-space character is detected, or until atEnd() returns true.
 QTextStream.Status status()
          Returns the status of the text stream.
 java.lang.String string()
          Returns the contents of the string that this text stream is working on.
 QTextStream writeByte(byte ch)
          This is an overloaded member function, provided for convenience.
 QTextStream writeChar(char c)
          Writes a character to the stream.
 QTextStream writeDouble(double f)
          This is an overloaded member function, provided for convenience.
 QTextStream writeFloat(float f)
          Writes the real number f to the stream, then returns a reference to the QTextStream.
 QTextStream writeInt(int i)
          This is an overloaded member function, provided for convenience.
 QTextStream writeLong(long i)
          This is an overloaded member function, provided for convenience.
 QTextStream writeShort(short s)
          Writes s to the stream.
 void writeString(java.lang.String string)
          Writes string to the stream.
 
Methods inherited from class com.trolltech.qt.QtJambiObject
dispose, disposed, equals, finalize, reassignNativeResources, tr, tr, tr
 
Methods inherited from class com.trolltech.qt.QSignalEmitter
blockSignals, disconnect, disconnect, signalsBlocked, signalSender, thread
 
Methods inherited from class com.trolltech.qt.internal.QSignalEmitterInternal
__qt_signalInitialization
 
Methods inherited from class java.lang.Object
clone, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.trolltech.qt.QtJambiInterface
disableGarbageCollection, nativeId, nativePointer, reenableGarbageCollection, setJavaOwnership
 

Constructor Detail

QTextStream

public QTextStream()
Constructs a QTextStream. Before you can use it for reading or writing, you must assign a device or a string.

See also:
setDevice(), and setString().


QTextStream

public QTextStream(QIODevice device)
Constructs a QTextStream that operates on device.


QTextStream

public QTextStream(QByteArray array,
                   QIODevice.OpenModeFlag[] openMode)

QTextStream

public QTextStream(QByteArray array)
Constructs a QTextStream that operates on array, using openMode to define the open mode. Internally, the array is wrapped by a QBuffer.


QTextStream

public QTextStream(QByteArray array,
                   QIODevice.OpenMode openMode)
Constructs a QTextStream that operates on array, using openMode to define the open mode. Internally, the array is wrapped by a QBuffer.

Method Detail

atEnd

public final boolean atEnd()
Returns true if there is no more data to be read from the QTextStream; otherwise returns false. This is similar to, but not the same as calling QIODevice::atEnd(), as QTextStream also takes into account its internal Unicode buffer.


autoDetectUnicode

public final boolean autoDetectUnicode()
Returns true if automatic Unicode detection is enabled; otherwise returns false.

See also:
setAutoDetectUnicode(), and setCodec().


codec

public final QTextCodec codec()
Returns the codec that is current assigned to the stream.

See also:
setCodec(), setAutoDetectUnicode(), and locale().


device

public final QIODevice device()
Returns the current device associated with the QTextStream, or 0 if no device has been assigned.

See also:
setDevice(), and string().


fieldAlignment

public final QTextStream.FieldAlignment fieldAlignment()
Returns the current field alignment.

See also:
setFieldAlignment(), and fieldWidth().


fieldWidth

public final int fieldWidth()
Returns the current field width.

See also:
setFieldWidth().


flush

public final void flush()
Flushes any buffered data waiting to be written to the device.

If QTextStream operates on a string, this function does nothing.


generateByteOrderMark

public final boolean generateByteOrderMark()
Returns true if QTextStream is set to generate the UTF BOM (Byte Order Mark) when using a UTF codec; otherwise returns false.

See also:
setGenerateByteOrderMark().


integerBase

public final int integerBase()
Returns the current base of integers. 0 means that the base is detected when reading, or 10 (decimal) when generating numbers.

See also:
setIntegerBase(), QString::number(), and numberFlags().


locale

public final QLocale locale()
Returns the locale for this stream. The default locale is C.

See also:
setLocale().


numberFlags

public final QTextStream.NumberFlags numberFlags()
Returns the current number flags.

See also:
setNumberFlags(), integerBase(), and realNumberNotation().


writeByte

public final QTextStream writeByte(byte ch)
This is an overloaded member function, provided for convenience.

Converts c from ASCII to a QChar, then writes it to the stream.


writeDouble

public final QTextStream writeDouble(double f)
This is an overloaded member function, provided for convenience.

Writes the double f to the stream.


writeFloat

public final QTextStream writeFloat(float f)
Writes the real number f to the stream, then returns a reference to the QTextStream. By default, QTextStream stores it using SmartNotation , with up to 6 digits of precision. You can change the textual representation QTextStream will use for real numbers by calling setRealNumberNotation(), setRealNumberPrecision() and setNumberFlags().

See also:
setFieldWidth(), setRealNumberNotation(), setRealNumberPrecision(), and setNumberFlags().


writeLong

public final QTextStream writeLong(long i)
This is an overloaded member function, provided for convenience.

Writes the qlonglong i to the stream.


writeInt

public final QTextStream writeInt(int i)
This is an overloaded member function, provided for convenience.

Writes the unsigned int i to the stream.


padChar

public final char padChar()
Returns the current pad character.

See also:
setPadChar(), and setFieldWidth().


pos

public final long pos()
Returns the device position corresponding to the current position of the stream, or -1 if an error occurs (e. ., if there is no device or string, or if there's a device error).

Because QTextStream 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.

See also:
seek().


read

public final java.lang.String read(long maxlen)
Reads at most maxlen characters from the stream, and returns the data read as a QString.

See also:
readAll(), readLine(), and QIODevice::read().


readAll

public final java.lang.String readAll()
Reads the entire content of the stream, and returns it as a QString. Avoid this function when working on large files, as it will consume a significant amount of memory.

Calling readLine() is better if you do not know how much data is available.

See also:
readLine().


readLine

public final java.lang.String readLine()
Reads one line of text from the stream, and returns it as a QString. The maximum allowed line length is set to maxlen. If the stream contains lines longer than this, then the lines will be split after maxlen characters and returned in parts.

If maxlen is 0, the lines can be of any length. A common value for maxlen is 75.

The returned line has no trailing end-of-line characters ("\n" or "\r\n"), so calling QString::trimmed() is unnecessary.

If the stream has read to the end of the file, readLine() will return a null QString. For strings, or for devices that support it, you can explicitly test for the end of the stream using atEnd().

See also:
readAll(), and QIODevice::readLine().


readLine

public final java.lang.String readLine(long maxlen)
Reads one line of text from the stream, and returns it as a QString. The maximum allowed line length is set to maxlen. If the stream contains lines longer than this, then the lines will be split after maxlen characters and returned in parts.

If maxlen is 0, the lines can be of any length. A common value for maxlen is 75.

The returned line has no trailing end-of-line characters ("\n" or "\r\n"), so calling QString::trimmed() is unnecessary.

If the stream has read to the end of the file, readLine() will return a null QString. For strings, or for devices that support it, you can explicitly test for the end of the stream using atEnd().

See also:
readAll(), and QIODevice::readLine().


realNumberNotation

public final QTextStream.RealNumberNotation realNumberNotation()
Returns the current real number notation.

See also:
setRealNumberNotation(), realNumberPrecision(), numberFlags(), and integerBase().


realNumberPrecision

public final int realNumberPrecision()
Returns the current real number precision, or the number of fraction digits QTextStream will write when generating real numbers.

See also:
setRealNumberPrecision(), setRealNumberNotation(), realNumberNotation(), numberFlags(), and integerBase().


reset

public final void reset()
Resets QTextStream's formatting options, bringing it back to its original constructed state. The device, string and any buffered data is left untouched.


resetStatus

public final void resetStatus()
Resets the status of the text stream.

See also:
QTextStream::Status , status(), and setStatus().


seek

public final boolean seek(long pos)
Seeks to the position pos in the device. Returns true on success; otherwise returns false.


setAutoDetectUnicode

public final void setAutoDetectUnicode(boolean enabled)
If enabled is true, QTextStream will attempt to detect Unicode encoding by peeking into the stream data to see if it can find the UTF-16 or UTF-32 BOM (Byte Order Mark). If this mark is found, QTextStream will replace the current codec with the UTF codec.

This function can be used together with setCodec(). It is common to set the codec to UTF-8, and then enable UTF-16 detection.

See also:
autoDetectUnicode(), and setCodec().


setCodec

public final void setCodec(QTextCodec codec)
Sets the codec for this stream to codec. 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.

If QTextStream operates on a string, this function does nothing.

Warning: If you call this function while the text stream is reading from an open sequential socket, the internal buffer may still contain text decoded using the old codec.

See also:
codec(), setAutoDetectUnicode(), and setLocale().


setDevice

public final void setDevice(QIODevice device)
Sets the current device to device. If a device has already been assigned, QTextStream will call flush() before the old device is replaced.

Note: This function resets locale to the default locale ('C') and codec to the default codec, QTextCodec::codecForLocale().

See also:
device(), and setString().


setFieldAlignment

public final void setFieldAlignment(QTextStream.FieldAlignment alignment)
Sets the field alignment to mode. When used together with setFieldWidth(), this function allows you to generate formatted output with text aligned to the left, to the right or center aligned.

See also:
fieldAlignment(), and setFieldWidth().


setFieldWidth

public final void setFieldWidth(int width)
Sets the current field width to width. If width is 0 (the default), the field width is equal to the length of the generated text.

Note: The field width applies to every element appended to this stream after this function has been called (e.g., it also pads endl). This behavior is different from similar classes in the STL, where the field width only applies to the next element.

See also:
fieldWidth(), and setPadChar().


setGenerateByteOrderMark

public final void setGenerateByteOrderMark(boolean generate)
If generate is true and a UTF codec is used, QTextStream will insert the BOM (Byte Order Mark) before any data has been written to the device. If generate is false, no BOM will be inserted. This function must be called before any data is written. Otherwise, it does nothing.

See also:
generateByteOrderMark(), and bom().


setIntegerBase

public final void setIntegerBase(int base)
Sets the base of integers to base, both for reading and for generating numbers. base can be either 2 (binary), 8 (octal), 10 (decimal) or 16 (hexadecimal). If base is 0, QTextStream will attempt to detect the base by inspecting the data on the stream. When generating numbers, QTextStream assumes base is 10 unless the base has been set explicitly.

See also:
integerBase(), QString::number(), and setNumberFlags().


setLocale

public final void setLocale(QLocale locale)
Sets the locale for this stream to locale. The specified locale is used for conversions between numbers and their string representations.

The default locale is C and it is a special case - the thousands group separator is not used for backward compatibility reasons.

See also:
locale().


setNumberFlags

public final void setNumberFlags(QTextStream.NumberFlag[] flags)

setNumberFlags

public final void setNumberFlags(QTextStream.NumberFlags flags)
Sets the current number flags to flags. flags is a set of flags from the NumberFlag enum, and describes options for formatting generated code (e.g., whether or not to always write the base or sign of a number).

See also:
numberFlags(), setIntegerBase(), and setRealNumberNotation().


setPadChar

public final void setPadChar(char ch)
Sets the pad character to ch. 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.

Example:

        QByteArray b = new QByteArray();
        QTextStream out = new QTextStream(b);
        out.setFieldWidth(10);
        out.setPadChar('-');
        out.writeString("Qt");
        out.writeString("\n");
        out.writeString("rocks!");
        out.writeString("\n");
Output:
        ----Qt----
        --rocks!--

See also:
padChar(), and setFieldWidth().


setRealNumberNotation

public final void setRealNumberNotation(QTextStream.RealNumberNotation notation)
Sets the real number notation to notation (SmartNotation , FixedNotation , ScientificNotation ). When reading and generating numbers, QTextStream uses this value to detect the formatting of real numbers.

See also:
realNumberNotation(), setRealNumberPrecision(), setNumberFlags(), and setIntegerBase().


setRealNumberPrecision

public final void setRealNumberPrecision(int precision)
Sets the precision of real numbers to precision. This value describes the number of fraction digits QTextStream should write when generating real numbers.

The precision cannot be a negative value. The default value is 6.

See also:
realNumberPrecision(), and setRealNumberNotation().


setStatus

public final void setStatus(QTextStream.Status status)
Sets the status of the text stream to the status given.

See also:
Status , status(), and resetStatus().


skipWhiteSpace

public final void skipWhiteSpace()
Reads and discards whitespace from the stream until either a non-space character is detected, or until atEnd() returns true. This function is useful when reading a stream character by character.

Whitespace characters are all characters for which QChar::isSpace() returns true.

See also:
operator>>().


status

public final QTextStream.Status status()
Returns the status of the text stream.

See also:
QTextStream::Status , setStatus(), and resetStatus().


setCodec

public final void setCodec(java.lang.String codecName)
Sets the codec for this stream to the QTextCodec for the encoding specified by codecName. Common values for codecName include "ISO 8859-1", "UTF-8", and "UTF-16". If the encoding isn't recognized, nothing happens.

Example:

    QTextStream out(&file);
    out.setCodec("UTF-8");


readByte

public final byte readByte()
Reads a byte from the stream.


readShort

public final short readShort()
Reads a short from the stream


readInt

public final int readInt()
Reads an int from the stream.


readLong

public final long readLong()
Reads a long from the stream.


readFloat

public final float readFloat()
Reads a float from the stream.


readDouble

public final double readDouble()
Reads a double from the stream.


writeShort

public final QTextStream writeShort(short s)
Writes s to the stream.


writeChar

public final QTextStream writeChar(char c)
Writes a character to the stream.


readChar

public final char readChar()
Reads a characther from the stream.


readString

public final java.lang.String readString()
Reads a String from the stream.


writeString

public final void writeString(java.lang.String string)
Writes string to the stream.


createStringStream

public static QTextStream createStringStream(java.lang.String string,
                                             QIODevice.OpenMode openMode)
This function makes the text tream operate on a string instead of a QIODevice.

The string parameter is the initial contents of the string that the text stream will work on. If string is null, an empty string will be created. The stream can both be written to and read from, depending on openMode. The contents of the string can at any time be retrieved by string(). For example:

    QTextStream stream = QTextStream.createStringStream("TestString\n55",
    new QIODevice.OpenMode(QIODevice.OpenModeFlag.ReadWrite));
    stream.writeString(" ");
    stream.writeString("Hei");
    stream.seek(0);
    System.err.println(stream.readString()); // == "TestString"
    System.err.println(stream.string()); // == "TestString\n55 Hei"
    

If the text stream already has a QIODevice set, it will flush this.

Parameters:
string - The initial content of the string.
openMode - Specifies access priveledges to the stream.
Returns:
A QTextStream operating on a String instead of a QIODevice.

string

public java.lang.String string()
Returns the contents of the string that this text stream is working on.

After creating a string stream with the createStringStream() method, you can fetch the contents of the string the text stream is working on with this method.

If this QTextStream was not created using createStringStream(), this function returns null.

Returns:
Returns the contents of QTextStreams created with createStringStream()