У меня проблемы в Qt 4 с записью в нетекстовые файлы. У меня есть данные QByteArray, и я хочу сохранить их в файл с именем «some_name.ext» в определенном каталоге: «C: // MyDir». Как я могу это сделать? Обратите внимание, что содержание не является текстовым.
Формат «GIF», и он не поддерживается Qt.
QImage mainImage;
if (!mainImage.loadFromData(aPhoto.data))
return false;
if (!mainImage.save(imageName, imageFormat.toUtf8().constData()))
return false;
Я хочу как-то обойти это ограничение!
Чтобы записать QByteArray в файл:
QByteArray data;
// ... fill the array with data ...
QFile file("C:/MyDir/some_name.ext");
file.open(QIODevice::WriteOnly);
file.write(data);
file.close();
Не забудьте проверить на ошибки, конечно.
Также обратите внимание, что хотя это и отвечает на ваш вопрос, это, вероятно, не решит вашу проблему.
Вы можете использовать QDataStream для записи двоичных данных.
QFile file("outfile.dat");
file.open(QIODevice::WriteOnly);
QDataStream out(&file);
Тогда используйте
QDataStream & QDataStream::writeBytes ( const char * s, uint len )
или же
int QDataStream::writeRawData ( const char * s, int len )