造成这种情况的一些常见原因是什么?我的第一个想法是正在读取的文件是只读的,但是我已经检查过了。

调用它的代码是:

QFile histogramFile(fileName);
quint64 fileSize = histogramFile.size();
QByteArray histogramByteArray = histogramFile.readAll();

最佳答案

引用documentation:

此功能无法报告错误。返回一个空的QByteArray可能意味着当前没有数据可读取,或者发生了错误。

您可以使用 histogramFile.errorString() 查询最后一个错误:

返回人类可读的最后发生的设备错误的描述。

在您的情况下,您忘记 open 该文件,例如:

QFile histogramFile(fileName);
if (histogramFile.open(QIODevice::ReadOnly | QIODevice::Text))
{
    QByteArray histogramByteArray = histogramFile.readAll();
}

关于qt - QFile::ReadAll()返回一个空数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31986404/

10-09 04:08