クラスにメソッドを実装しています。このメソッドは、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() を呼び出す方がよいでしょうか?
書き込み操作を改善するために、私がしなければならない他の変更はありますか?