Как сделать QString из QTextStream?
будет ли это работать?
QString bozo;
QFile filevar("sometextfile.txt");
QTextStream in(&filevar);
while(!in.atEnd()) {
QString line = in.readLine();
bozo = bozo + line;
}
filevar.close();
будет ли bozo полнотой sometextfile.txt?
2 ответов
почему даже читать строку за строкой? Вы можете оптимизировать его немного больше и уменьшить ненужные перераспределения строки при добавлении к ней строк:
QFile file(fileName);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) return;
QTextStream in(&file);
QString text;
text = in.readAll();
file.close();
как упоминает ddriver, вы должны сначала открыть файл с помощью file.open(…);
кроме этого, да bozo
будет содержать весь файл, используя код, который вы.
одна вещь, которую следует отметить в коде ddriver, это text.reserve(file.size());
не нужно, потому что на следующей строке:
text = in.readAll();
это заменить text
С новой строкой, поэтому вызов text.reserve(file.size());
просто сделал бы неиспользованную работу.