Класс для работы с текстовой информацией. Использует потоковые операторы, унаследован от 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();