您有以下错误:
QDataStream::QDataStream(const QByteArray &a)
构造一个对字节数组 a 进行操作的只读数据流。如果要写入字节数组,请使用 QDataStream(QByteArray*, int)。
由于 QByteArray 不是 QIODevice 子类,因此在内部创建了一个 QBuffer 来包装字节数组。
并且由于 QByteArray 是只读的,因为它不是适当的构造函数,因此您必须使用另一个构造函数:
QDataStream::QDataStream(QByteArray *a, QIODevice::OpenMode 模式)
构造一个对字节数组 a 进行操作的数据流。模式描述了设备的使用方式。
或者,如果您只想从字节数组中读取,您可以使用 QDataStream(const QByteArray &)。
由于 QByteArray 不是 QIODevice 子类,因此在内部创建了一个 QBuffer 来包装字节数组。
使用上面我们得到以下信息:
QFile filea( file1 );
QFile fileb( file2 );
QFile result("C:/Users/Aaron/Desktop/mergedfile.txt");
if(filea.open(QIODevice::ReadOnly) && fileb.open(QIODevice::ReadOnly) && result.open(QIODevice::WriteOnly)){
QByteArray ba;
QDataStream ds(&ba, QIODevice::ReadWrite);
ds << filea.readAll();
ds << fileb.readAll();
result.write(ba);
result.flush();
}