qiodevice 類是 qt 中所有 i/o 裝置的基礎介面類,為諸如 qfile、qbuffer 和 qtcpsocket 等支援讀/寫資料塊的裝置提供了乙個抽象介面。。
qfile類提供乙個用於讀/寫檔案的介面,它是乙個可以用來讀寫文字檔案、二進位制檔案和qt資源的 i/o 裝置。
qfile可以單獨使用,也可以和qtextstream 或者qdatastream 一起使用。
乙個檔案可以使用open()開啟,使用close()關閉,使用flush()重新整理。
檔案的資料讀/寫一般使用qdatastream 或者 qtextstream 來完成,不過也可以使用繼承自 qiodevice 類的一些函式,如:
qbytearray qiodevice::read(qint64 maxsize)
從裝置讀取最多最大大小的位元組,並返回資料重組
qint64 qiodevice::read(char *data, qint64 maxsize)
從裝置讀取最多最大大小的位元組的資料,並返回讀取的位元組數
qint64 qiodevice::readline(char *data, qint64 maxsize)
此函式從裝置讀取一行 ascii 字元, 最大最大最大大小為-1 位元組, 將字元儲存在資料中, 並返回讀取的位元組數。如果無法讀取行, 但沒有錯誤, 則此函式返回0。如果發生錯誤, 此函式返回可以讀取的內容的長度, 如果未讀取任何內容, 則返回-1。
readall()
讀取檔案所有內容,讀取之後將會處於檔案的末尾
qint64 qiodevice::write(const char *data, qint64 maxsize)
將資料從資料到裝置的最大最大最大大小位元組寫入裝置。返回實際寫入的位元組數, 如果發生錯誤, 則返回-1。
qint64 qiodevice::write(const char *data)
將來自8位字元的零終止字串的資料寫入裝置。返回實際寫入的位元組數, 如果發生錯誤, 則返回-1。
bool qiodevice::getchar(char *c)
從裝置讀取乙個字元, 並將其儲存在 c 中。如果 c 為 0, 則該字元將被丟棄。成功時返回 true;否則返回 false。(一次只操作乙個字元)
bool qiodevice::putchar(char c)
將字元 c 寫入裝置。成功時返回 true;否則返回 false。(一次只操作乙個字元)
void qiodevice::ungetchar(char c)
將字元 c 放回裝置, 並減少當前位置, 除非位置為0。此函式通常被呼叫為 "撤消" getchar () 操作, 例如在編寫回溯分析器時。
如果以前未從裝置讀取 c, 則該行為未定義。(一次只操作乙個字元)
[virtual] qint64 qfile::size() const
獲取檔案的大小
[virtual] bool qfiledevice::seek(qint64 pos)
定位到檔案的任意位置
[virtual] qint64 qfiledevice::pos() const
獲取當前的位置
[virtual] bool qfiledevice::atend() const
判斷是否到達了檔案的末尾(如果已達到檔案的末尾, 則返回 true。否則返回 false。)
例子(建立檔案並寫入資料):
//以只寫的方式開啟,如果檔案不存在,那麼會建立該檔案
qfile file("myfile.txt");
if(!file.open(qiodevice::writeonly | qiodevice::text))
qdebug()<
file.write("helloqt!");
file.close();
QT 檔案操作 QFile
目錄 qfile類介紹 寫入資料到txt檔案 例項 從txt檔案中讀取所有資料 例項 從txt檔案中一行一行讀取資料 例項 部分函式引數及作用 qiodevice 類是 qt 中所有 i o 裝置的基礎介面類,為諸如 qfile qbuffer 和 qtcpsocket 等支援讀 寫資料塊的裝置提供...
QT 檔案操作 QFile
qfile簡介 繼承自qiodevice qiodevice 類是 qt 中所有 i o 裝置的基礎介面類,為諸如 qfile qbuffer 和 qtcpsocket 等支援讀 寫資料塊的裝置提供了乙個抽象介面。qfile類提供乙個用於讀 寫檔案的介面,它是乙個可以用來讀寫文字檔案 二進位制檔案和...
使用QFile進行檔案操作
qfile類我我們提供了操作檔案的常用功能。它是一種io裝置,可以用來讀寫文字檔案和二進位制檔案,也可以用來讀寫qt的資源檔案。qfile類可以單獨使用,該類本身提供了read write函式,但更方便的方式是,將qfile和qtextstream或qdatastream一起使用。一般情況下,使用q...