我有来自Arduino的数据,我想写入CSV文件。问题是数据不断覆盖现有的行。以下是代码示例:
QFile data("F:/logdata.csv");
if (data.open(QFile::WriteOnly | QFile::Truncate)) {
QTextStream out(&data);
out << hum << "," << temp << "," << gas << '\n';
}
答案 0 :(得分:4)
您是否尝试重新打开并将数据附加到同一文件?在这种情况下,您不想使用QFile::Truncate
标志,因为它会删除该文件中的内容。
请参阅http://doc.qt.io/qt-5/qiodevice.html:
QIODevice :: Truncate 如果可能,设备在打开之前会被截断。都早点 设备内容丢失。
同样根据Ibarros的建议,使用QIODevice::Append
标志来确保附加数据。
<强>更新强>
实际上你也不想使用QIODevice::WriteOnly
标志,因为它会添加truncate标志。您应该使用QIODevice::ReadWrite
代替。
data.open(QIODevice::ReadWrite| QIODevice::Append)
答案 1 :(得分:1)
打开文件时,请使用&#34; QIODevice :: Append&#34;标志,因此您写入的数据将附加在文件的末尾。
示例:
{{1}}