我有一个文件,比方说 8 个字节的长度。例如,它看起来像这样:
22222222
现在,我首先阅读 5 个字节并更改它们。例如。到11111
最后,我想将它们写入到文件中,所以我希望文件看起来像这样:
11111222
但我只得到11111
,因为文件被删除了。如何禁用擦除?(也许这个问题存在,但找不到这样的问题)
根据您对文件所做的确切操作,您可能需要对其进行内存映射:
QFile f("The file");
f.open(QIODevice::ReadWrite);
uchar *buffer = f.map(0, 5);
// The following line will edit (both read from and write to)
// the file without clearing it first:
for (int i=0; i<5; ++i) buffer[i] -= 1;
f.unmap(buffer);
f.close();
void fileopen()
{
QDataStream Input(&file);
Input>>"11111";
Input>>"22222";
file.close();
}
这个函数写入数据。
QDataStream &operator<<(QDataStream &ds,const QString &data)
{
ds<<data.toLatin1().data();
ds<<data.toLatin1().data();
return ds;
}
尝试打开QFile
with | QIODevice::Append
,然后QFile::seek()
,然后QDataStream
在QFile
对象上创建 。但请注意,QDataStream
将控制信息添加到输出中,因此可能不会产生您想要的结果。
此外,如果您想编写文本而不是二进制数据,请尝试使用QTextStream
.