QFile :: flush () vs QFile :: close ()

Ich implementiere eine Methode in meiner Klasse, die Daten aus einem TableView-Objekt in eine CSV-Datei schreibt. Wenn das Programm ausgeführt wird, schreibt das Programm die Daten mit einer sehr langsamen Geschwindigkeit (3 oder 4 Sekunden) in die Datei auf einem USB-Laufwerk, funktioniert jedoch einwandfrei mit dem internen Laufwerk des Systems. Liegt das daran, dass ich nicht flush () oder close () verwendet habe, nachdem ich die Datei geschrieben habe?

Hier ist mein Code

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<<',';

        }
    }

}

Dies war früher mein Code, und jetzt plane ich, den Dateistream zu schließen, um das Programm ordnungsgemäß zu beenden. Die Qt API für QFile :: close () sagt

Ruft QFile :: flush () auf und schließt die Datei. Fehler aus dem Flush werden ignoriert.

Soll ich also einfach close () aufrufen oder ist es besser, flush () aufzurufen, Fehler zu protokollieren und dann close () aufzurufen?

Gibt es eine andere Änderung, die ich vornehmen muss, um den Schreibvorgang zu verbessern?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage