Qt4: написать QByteArray в файл с именем файла?

У меня проблемы в 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; 

Я хочу как-то обойти это ограничение!

2 ответов


чтобы записать 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 )