我正在我的类中实现一个方法,它将数据从 TableView 对象写入 CSV 文件。但是,当程序运行时,程序会以非常慢的速度(3 或 4 秒)将数据写入 USB 驱动器上的文件,但可以在系统的内部驱动器上正常工作。这是因为我在写入文件后没有使用flush()或close()吗?
这是我的代码
bool ThicknessCalibrationDataDisplay::WriteCSVFileChanges()
{
QModelIndex tableViewModelindex = tableViewModel_->index(0,0);
QFile file(CSVFileName_);
if(!file.exists())
return false;
if(!file.open(QIODevice::WriteOnly))
return false;
for(int i = 0; i < totalRows_ ; i++)
{
for(int j = 0 ; j < totalColumns_; j++)
{
tableViewModelindex = tableViewModel_->index(i,j);
qDebug()<<tableViewModelindex.data();
QString text = tableViewModelindex.data().toString();
QTextStream OutputStream(&file);
if(j == totalColumns_ - 1)
OutputStream<<"\n\r";
else
OutputStream<<',';
}
}
}
这是我之前的代码,现在我打算关闭文件流,以便优雅地退出。QFile::close() 的 Qt API 说
调用 QFile::flush() 并关闭文件。来自刷新的错误被忽略。
所以我应该只调用close(),还是调用flush(),记录任何错误然后调用close()更好?
是否有任何其他修改,我必须做,以改进写操作?