Qt 使用 QDataStream 保存二进制数据
Qt 使用 QDataStream 保存二进制数据
如果您想要以二进制形式保存字节流数据,而不是将其解释为字符串,可以使用 QFile 类和 QDataStream 类的 writeRawData 函数。以下是一个示例代码:
#include <QCoreApplication>
#include <QFile>
#include <QDataStream>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
// 创建一个 Qt 二进制文件
QFile file('example.bin');
// 打开文件以写入
if (!file.open(QIODevice::WriteOnly))
{
qDebug() << '无法打开文件!';
return a.exec();
}
// 创建一个数据流,以便将数据写入文件
QDataStream stream(&file);
// 准备要保存的字节流数据
QByteArray byteStream;
byteStream.append('');
byteStream.append('4');
byteStream.append('V');
byteStream.append('x');
// 写入数据到二进制文件
stream.writeRawData(byteStream.constData(), byteStream.size());
// 关闭文件
file.close();
qDebug() << '二进制文件创建完成!';
return a.exec();
}
在这个示例中,我们创建了一个名为 example.bin 的二进制文件,并打开文件以进行写入。然后,我们创建了一个 QDataStream 对象,用于将数据写入文件。
在这个例子中,我们创建了一个 QByteArray 对象,并手动将一些字节添加到其中。然后,我们使用 writeRawData 函数将 byteStream 中的数据以原始字节的形式写入二进制文件。
请注意,该文件在打开时将会是二进制的,并且以字节流的形式保存数据,而不是解释为字符串。
别忘了关闭文件,以确保数据被正确保存。
希望这个示例能够满足您的需求!如果还有其他问题,请随时提问。
原文地址: https://www.cveoy.top/t/topic/Khs 著作权归作者所有。请勿转载和采集!