Qt檔案讀寫操作 (文章收錄)
阿新 • • 發佈:2019-01-03
操作檔案是各種語言和類庫的基本功能. Qt是如何讀寫檔案的呢?
在Qt的文件有就有答案. 在QFile的文件中指出了幾種操作檔案的方法, 其中QTextStream是比較好理解和使用的:
讀取操作:
The next example uses QTextStream to read a text file line by line:
QFile file("in.txt"); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) return; QTextStream in(&file); while (!in.atEnd()) { QString line = in.readLine(); //process string line here }
寫入操作:
QFile file("out.txt"); if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) return; QTextStream out(&file); out << "The magic number is: " << 49 << "\n";
比較讓人疑惑的地方是為什麼QFile在open()之後沒有呼叫close().
後來查了文件, 在QFile的析構裡有這樣的說明:
Destroys the file object, closing it if necessary.
表示析構裡可以自動close(). 不過良好的習慣還是在適當的地方自己close()一下.
有open()就有close(), 有new就有delete, 以後程式碼的閱讀者看著也放心, 不會嘀咕怎麼似乎沒有close.
還有一點很重要的是, 讀取文字型別檔案(比如txt)用QTextStream, 而讀取二進位制檔案的時候(比如圖片或者exe或者PDF檔案)要用QDateStream這個類.
進一步說, 由於QFile繼承自QIODevice, 可以直接用QFile進行讀寫操作, 文件裡也有例子, 就不細說了.