我需要向文件写入n
个字节,我有QTemporaryFile
,
我应该如何写这些字节?
我阅读了QIODevice::write
文档:
qint64 QIODevice :: write(const char * data,qint64 maxSize)写在 从数据到设备的数据最大maxSize字节。返回数字 实际写入的字节数;如果发生错误,则为-1。
因此,由于没有受赠者,因此我似乎需要循环写入字节
它写入了所有字节,可能会在写入k
个字节后返回控制权,
其中k
<n
。
我可以从QDataStream
创建TemporaryFile
,但是QDataStream::writeRawData
函数具有相同的限制:
int QDataStream :: writeRawData(const char * s,int len)写入len个字节 从s到流。返回实际写入的字节数,或者 -1表示错误。数据未编码。
因此Qt
中没有函数可以精确地写入n
个字节或返回错误?
答案 0 :(得分:0)
在没有错误但写入的字节数少于n
的情况下,您如何建议撤销写入某些字节?尤其是如果文件中已经有数据(之前的writes
成功,或者因为您要追加)。
如果没有进行任何外部操作,任何进一步尝试写入未写入所有n
字节的文件的操作也很可能失败或写入0。浮现在脑海的情况是磁盘可用空间的耗尽。