Класс для работы с текстовой информацией. Использует потоковые операторы, унаследован от QIODevice. Реализует чтение и запись через методы << (запись в поток) и >> (чтение из потока).
Числовые данные передаваемые в потоке автоматически преобразуются в текст. Для того чтобы числа записались в файл в читабельном виде можно задать ширину поля qSetFieldWidth() или setFieldWidth().
Для примера запишем в файл два числа.
#include <QTextStream>
#include <QFile>
QFile data("output.txt");
if (data.open(QFile::WriteOnly | QFile::Truncate)) {
QTextStream out(&data);
out << "Data: " << qSetFieldWidth(10) << 3.14 << 2.6;
}
QTextStream использует формат Unicode.
В данном классе представлен удобный метод readLine(), который читаем файл построчно.
Пример считывания файла в QList:
#include <QTextStream>
#include <QFile>
QList <QString> strLine;
QFile file ("output.txt");
if(file.open(QIODevice::ReadOnly))
{
QTextStream stream(&file);
QString str;
while (!stream.atEnd())
{
str = stream.readLine();
strLine.push_back(str);
}
file.close();
}
Так же есть метод readAll() который прочитает весть файл в строку. Данный метод рекомендуется использовать только для небольших файлов.
Пример считывания всего файла в QString:
#include <QTextStream>
#include <QFile>
QFile file("output.txt");
QTextStream stream(&file);
QString str = stream.readAll();
