QFile詳解


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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM