Qt4:用文件名写QByteArray到文件?

时间:2012-10-20 11:50:10

标签: c++ image file qt bytearray

我在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 个答案:

答案 0 :(得分:30)

将QByteArray写入文件:

QByteArray data;
// ... fill the array with data ...

QFile file("C:/MyDir/some_name.ext");
file.open(QIODevice::WriteOnly);
file.write(data);
file.close();

当然,请记得检查错误。

另请注意,尽管这可以解答您的问题,但它可能无法解决您的问题。

答案 1 :(得分:1)

您可以使用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 )