1. 程式人生 > >Qt檔案讀寫操作 (文章收錄)

Qt檔案讀寫操作 (文章收錄)

操作檔案是各種語言和類庫的基本功能. 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進行讀寫操作, 文件裡也有例子, 就不細說了.