1、QFile::QFile()
構造一個沒有名字的QFile對象
2、QFile::QFile(const QString&name)
構造一個以name為文件名的QFile對象。
注:也可以QFile::QFile(),然后調用setName()方法來實現類似動作。
3、boot QFile::atEnd()const [虛函數]
如果已經到達文件末尾則返回TRUE,否則返回FALSE;
4、void QFile::close()[虛函數]
關閉一個打開的文件。
如果文件被一個存在的文件句柄打開,則不能夠關閉。如果存在的文件句柄是一個FILE*,文件會被刷新。如果存在的文件句柄是一個int型的文件描述符,對這個文件什么事情都不會做。
5、QStringQFile::decodeName(const QCString & localFileName) [靜態函數]
這是一個使用localFileName與QFile::encodeName()相反的操作。
6、QCStringQFile::encodeName(const QString & fileName) [靜態函數]
當你使用QFile、QFileInfo與QDir來訪問Qt的文件系統的時候,你可以使用Unicode的文件名字。在Unix系統上,這些文件 名稱被轉換成為一個8位編碼的格式。如果你想在Unix上實現你自己的輸入/輸出文件,你需要使用這個函數來轉換文件名稱。在windowNT/2000上,文件系統直接支持Unicode命名的文件,這個汗水就可以不適用了。在windows95 上,這些事不支持的。默認的,這個函數轉換文件名稱到8為本地編碼格式取決於用戶的工作場合。這給用戶給文件命名提供了豐富的選擇空間。在應用程序中位文 件名字硬編碼應該只選用7位ASCII碼為文件名稱字符。轉換方案可以通過使用setEncodingFunction()來改變。如果你希望給使用者一 個可以使用UTF-8編碼命名存儲文件的權利,那這個應該是很有用的,但是要知道這樣一個文件名當其它程序使用時可能就不認識了。
7、bool QFile::exists(constQString &fileName) [靜態函數]
如果給定fileName名的文件存在則返回TRUE,否則返回FALSE。
注:另一個重載函數為bootQFile::exists() const,如果setName()設定的文件存在則返回TRUE,否則返回FALSE。
8、void QFile::flush() [虛函數]
將存放在緩沖區中的文件刷新輸出到磁盤上。
注:close()也會將文件寫入磁盤,並清除文件緩沖區。
9、int QFile::getch() [虛函數]
從一個文件中讀一個字節/字符。
返回讀取的字節/字符。如果到達文件的尾部則返回-1.
10、int QFile::handle () const
返回文件的句柄。
這是一個短整型,與C庫函數例如fopen()與fcntl()的使用類似,以及與QSocketNotifier類似。
如果文件沒有打開或有錯誤,handle()返回-1.
11、QString QFile::name()const
返回被setName()設置的名字。
12、Bool QFile::open(intm)[虛函數]
13、bool QFile::open(int m,FILE *f)
這是一個為了方便而提供的重載成員函數。它在本質表現上類似於上面的函數。它使用一個存在的文件句柄並以參數m模式打開它。如果成功它返回TRUE,否則返回FALSE。
例子:
#include<stdio.h>
void printError(const char *msg)
{
QFilef;
f.open(IO_WriteOnly,stderr);
f.writeBlock(msg,qstrlen(msg));//向stderr中寫入
f.close();
}
當QFile使用這個功能打開一個文件時,close()實質上不能關閉文件,只有flushes它了。
警告:如果f是stdin,stdout,stderr,你不能seek定位。
14、bool QFile::open(int m,int f)
這是一個為了方便而提供的重載成員函數。它本質表現上類似於上述函數。它使用一個已經存在的文件描述符,以模式m打開這個文件。如果成功返回TRUE,否則返回FALSE。當QFile使用這個功能打開一個文件時,close()實質上不能關閉文件。
使用這個函數打開的QFile文件,會自動的被設置成不帶緩沖區的模式,這意味着文件輸入與輸出操作會慢。如果你達到發布執行的時候,你應該試着使用其它的打開函數。
警告:如果f是0(stdin),1(stdout),2(stderr),你不能seek定位。Size()被設置成INT_MAX(inlimits.h)
15、int QFile::putch (int ch) [虛函數]
像文件當中寫入字符ch。
返回ch,或如果發生錯誤返回-1
16、QByteArry QIODevice::readAll()[虛函數]
這個方便的函數返回所有在設備上剩余數據。
17、Q_LONG QFile::readLine (char*p,Q_ULONG maxlen ) [虛函數]
讀取去文本中的一行數據。
從文件中讀取的數據存放到以字符指針p開始位置處,直到一行結束或達到maxlen長度字節處無論哪個先發生都會返回。返回讀到字節的長度數值,或發生錯誤后返回-1。返回內容包含終止換行符。
這個函數只有在文件存放在緩沖區中才有效率。避免在使用IO_Raw標志打開文件后使用readLine()操作文件。
18、Q_LONG OFile::readLine(QString&s,Q_ULONG maxlen)
這是為了方便操作而提供的一個重載成員函數。它實質上的功能與上面的函數類似。
從一個文件中讀一行數據。
從文件中讀出多個字節存放到字符串s中,直到一行結束或達到maxlen長度字節處無論哪個先發生都會返回。返回讀到字節的長度數值,或發生錯誤后返回-1。返回內容包含終止換行符。
這個函數只有在文件存放在緩沖區中才有效率。避免在使用IO_Raw標志打開文件后使用readLine()操作文件。
注意:這個字符串以plain Latin1模式讀出來的,不是Unicode。
19、bool QFile::remove()
根據當前設置的文件名刪除文件。如果成功返回TRUE,否則返回FALSE。
在移除文件前這個文件要被關閉掉。
20、bool QFile::remove(constQString & fileName) [靜態函數]
這是一個很有用的可重載成員函數。它本質上的功能類似於上面的函數。它移除指定名稱的文件。如果成功返回TRUE,否則返回FALSE。
21、voidQFile::setDecodingFunction(DecoderFn f) [靜態函數]
警號:這個函數是不可重入函數。
Sets the function for decoding 8-bit file names tof. The default uses the locale-specific 8-bit encoding.
22、voidQFile::setEncodingFunction(EncoderFn f) [靜態函數]
Sets the function for encodingUnicode file names to f. The default encodes in the locale-specific 8-bitencoding.
23、void QFile::setName(constQString & name)
設置文件對象的名字為name。這個名字可以不包含路徑或相對路徑或絕對路徑。如果文件已經被打開,那么不要調用這個函數。如果文件名不包含路徑或相對路徑,那么無論什么時候在執行open()調用時應用程序當前目錄就會被使用。
示例:
QFilefile;
QDir::setCurrent("/tmp");
file. setName("readme.txt");
QDir::setCurrent("/home");
file. open(IO_ReadOnly); //打開文件的位置"/home/readme.txt"
24、Offset QFile::size() const [虛函數]
返回文件大小。
25、int QFile::ungetch (int ch) [虛函數]
輸出字符ch返回到文件中,並且如果不為零則減少數值。
這個函數通常在撤銷getch()操作的時候調用。
返回ch,或當錯誤發生的時候返回-1。