2015-08-13 108 views
1

這是什麼原因造成的?我的第一個想法是,即時閱讀的文件是隻讀的,但我已經檢查過。QFile :: ReadAll()返回一個空數組

調用它的代碼是:

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

你沒有打開該文件,你有沒有:) – dtech

+0

是啊,這是問題。衛生署。 – CountBale

回答

3

從引述documentation

這個函數沒有報告錯誤的方式;返回一個空的QByteArray可能意味着目前沒有數據可用於讀取,或者發生錯誤。

您可以查詢使用histogramFile.errorString()最後一個錯誤:

返回最近發生的設備錯誤的人類可讀的描述。

你的情況,你忘了open文件,例如:

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

哎呀,我是個白癡。謝謝。 – CountBale