精华内容
下载资源
问答
  • QFile

    2013-06-25 18:50:47
    Qt 文件处理Qt提供了QFile类来进行文件处理,为了更方便地处理文本文件或二进制文件,Qt还提了QTextStream类和QDataStream类,处理临时文件可以使用QTemporaryFile,获取文件信息可以使用QFileInfo,处理目录可以使用...
    Qt 文件处理

    Qt提供了QFile类来进行文件处理,为了更方便地处理文本文件或二进制文件,Qt还提了QTextStream类和QDataStream类,处理临时文件可以使用QTemporaryFile,获取文件信息可以使用QFileInfo
    ,
    处理目录可以使用QDir.监视文件和目录变化可以使用QFileSystemWatcher.

    读写文本文件
    QFile
    类提供了读写文件的接口,QFile类可以读写文本文件,二进制文件和Qt资源文件,也可以使用更方便的QTextStream,QDataStream类读取文本文件和二进制文件,要打开一个文件,可以在构造函数中指定文件名,也可以在任何时候使用setFileName()函数设置文件名,打开文件使用open函数,关闭文件使用close函数。QFile中可以使用QIODevice中继承的readLine()函数读写文本文件的一行。如:
      QFile file("zeki.txt");
      if(file.open(QIODevice::ReadOnly))
      {
          char buffer[2048];
          qint 64 lineLen=file.readLine(buffer,sizeof(buffer));
          if(lineLen!=-1)
          {
             qDebug<       }
      }
    如果读取成功,readLine返回实际读取的字节数,如果读取失败则返回-1
    QTextStream
    提供了更为方便的接口来读写文本,QTextStream可以操作QIODevice,QByteArray,QString.QTextStream使用流操作符,可以方便地读写单词,行和数字。为了产生文本,QTextStream提供了填充,对齐和数字格式化的格式选项。如
       QFile data("test.txt");
       if(data.open(QFile::WriteOnly|QFile::Truncate))
       {
            QTextStream out(&data);
            out<    }
       
    QTextStream
    的格式化函数
    ----------------------------------------------
    qSetFieldWidth(int width)  
    设置字段宽度
    qSetPadChar(QChar ch)      
    设置填充字符
    qSetRealNumberPrecision(int precision) 
    设置实数精度
    ----------------------------------------------
    QTextStream中使用的默认编码是QTextCodec::codecForLocal()函数返回的编码,同时能够自动检测Unicode。也可以使用QTextStream::setCodec(QTextCodec *codec)函数设置的流编码。

    操作二进制文件
    QDataStream
    类提供了将二进制文件串行化的功能,QDataStream实现了c++基本数据类型的串行化,如char,short,int char* 更复杂的数据类型串行化通过将数据类型分解为基本的数据类型来完成。下面用来写二进制数据到数据流。
    QFile file("binary.dat");
    file.open(QIODevice::WriteOnly);
    QDataStream out(&file);
    out< out<<(qint32)42<<(qint32)96;
    将上面写入的文件读入的过程为:
    QFile file("binary.dat");
    file.open(QIODevice::ReadOnly);
    QDataStream in(&file);
    QString str;
    qint32 x,y;
    in>>str>>x>>y;
    每一个条目都可以定义的二进制格式写入文件,Qt中的很多类型,包括QBrush,QColor,QDateTime,QFont,QPixmap,QString,QVariant等都可以写入数据流。

    如果需要读取原始数据,可以使用readRawData()读取数据到预先定义好的char *缓冲区,写原始数据使用writeData(),读写原始数据需要对数据进行编码和解码。
    下面例子演示了使用QDataStream进行读写文件的过程。
    #include
    #include
    using namespace std;
    int main(int argc,char **argv)
    {
       QCoreApplication app(argc,argv);
       QFile file("binary.file");
       file.open(QIODevice::WriteOnly|QIODevice::Truncate);
       QDataStream out(&file);
       out<    out<    out<<(qint32)21;
       file.close();
       
       file.setFileName("binary.file");
       if(!ifle.open(QIODevice::ReadOnly))
       {
          cout<<"
    打开文件错误!";
          return 1;
       }
       QDataStream in(&file);
       QString name;
       QDate birthday;
       qint32 age;
       in>>name>>birthday>>age;
          qDebug()<       cout<       qPrintable(birthday.toString("yyyy MMMM dd dddd"));
       file.close();
       return 0;
    }
    在例子中,QDataStream类写入了姓名(QString),生日(QDate),和年龄(qint32)三个数据,读取时使用相同的类型读出。QDataStream可以读取任意以QIODevice为基类生成的对象产生的数据。如QTcpSocket,QUdpSocket,QBuffer,QFile,QProcess等类的数据。可以使用QDataStreamQAbstractSocket一端写入数据,另一端使用QDataStream读取数据,这样就免去了繁琐的
    高低端字节转换过程。
    临时文件
    实际应用中有时可能需要使用临时文件,Qt中提供QTemporaryFile类来提供临时文件。QTemporayFile可以安全地创建一个第一无二的临时文件。临时文件通过open()来创建。Qt可以保证临时文件不会重复。在临时文件对象销毁后,将自动删除该临时文件。临时文件通过close()关闭后还可以打开,只要临时文件对象还没有销毁,临时文件就一直存在并由QTemporaryFile内部保持打开。系统的临时目录可以通过QDir::tempPath()来获取,unix/linux系统上的临时目录通常时/tempwindows上通常是TEM/TMP指定

     

     

    2.目录操作和文件管理
    QDir
    类具有存取目录结构和内容的能力。使用QDir可以操作目录,存取目录或文件信息,操作底层文件系统,而且还可以存取Qt的资源文件。Qt使用/作为通用的目录分割符和URL路径分隔符。Qt可以使用相对路径和绝对路径指向一个文件,isRelative()isAbsolute()函数可以判断QDir对象使用的是相对路径还是绝对路径。将相对路径转换为绝对路径使用makeAbsolute()函数。目录路径可以通过path()函数返回,通过setPath()函数设置新路径,绝对路径使用absolutePath()返回。目录名可以使用dirName()返回。目录的路径可以通过cd() cdUp()改变,可以使用mkdir()创建目录,rename()改变目录名。判断目录是否存在可以使用exists(),目录的属性可以使用 isReadable(),isAbsolute(),isRelative()isRoot()来获取,目录下有很多条目,包括文件,目录和符号链接,总的条目数可以使用count()来统计。entryList()可以返回目录下所有条目组成的字符串链表,文件可以使用remove()函数删除,rmdir()删除目录。
    linux du
    命令

    int main(int argc, char **argv)
    {
       QCoreApplication app(argc,argv);
       QStringList args=app.arguments();
       QString path;
       if(args.count()>1)
         path=args[1];
       else
         path=QDir::currentPath();
       qDebug()<    du(path);
       return 0;
    }
    qint64 du(const QString &path)
    {
        QDir dir(path);
        qint64 size=0;
        foreach(QFileInfo fileInfo,dir.entryInfoList(QDir::Files))
           size+=fileInfo.size();
        foreach(QString subDir,dir.entryList(QDir::Dirs|QDir::NoDotAndDotDot))
           size+=du(path+Dir::separator()+subDir);
        char unit=\\\'B\\\';
        if(curSize>1024)
        {
           curSize/=1024;
           unit=\\\'K\\\';
           if(curSize>1024)
           {
              curSize/=1024;
              unit=\\\'M\\\';
              if(curSize>1024)
              {
                curSize/=1024;
                unit=\\\'G\\\';
              }
            }
         }
         cout<      return size;
    }
    函数du()中,entryInfoList(QDir::Files)函数返回文件信息,然后根据这些信息计算文件大小,接下来判断是否有子目录,如果有则递归计算。dir.etnryList(QDir::Dirs|QDir::NoDotAndDotDot)返回所有子目录并过滤掉. .. 目录。由于windows(),linux平台/ \差异,使用QDir::separator()函数来返回特定平台的目录分隔符。另外QDirIterator可以完成
    枚举目录的功能,Qt4.3还引入了文件搜索前缀的概念,文件搜索前缀时至少由两个字符组成,用来搜索指定文件的路径。
    QDir::setSearchPaths("docs",QStringList("c:\My Docments"));
    QDir::addSearchPaht("Docs",QStringList("D:|Documents"));
    QFile file("docs::qt4.doc");
    这样就可以在两个目录中查找。

    文件管理
    QFileInfo
    类提供了与系统无关的文件信心,它能提供文明名和路径,存取权限,以及文件是否为目录或符号链接,文件大小,以及最后修改/读取的时间等。QFileInfo也能从资源中获取信息。QFileInfo可以使用相对路径或绝对路径。文件名可以在QFileInfo的构造函数中传递,也可以使用setFile()函数指定,要判断一个函数是否存在,使用exits()函数,文件大小可以通过size()函数获取,文件类型可以通过isFile()isDir(),isSymLink()来获取,symLinkTarget()函数返回符号链接所指向的真正文件名。QFileInfo提供refresh函数刷新文件信息,如果需要QFileInfo每次从文件系统读取信息,二不是从缓存读取,可以使用setCaching(false)关闭缓存。文件名和目录可以通过path()fileName()分解,fileName()返回的部分可以通过baseName()extension()来获得主文件名和扩展文件名,文件的操作日期可以通过created(),lastModified()lastRead()获取,文件的存取权限可通国isReadable,isWriteable(),isExcutetable()获取,文件的属主可以通过owner(),ownerId,group(),groupId()获取,文件的权限和属主也可以通过permission()一起读取。

    监视文件系统的变化
    Qt中可以使用QFileSystemWatcher类来监视文件和目录的改变.使用addPath()函数来监视指定的文件和目录,如果需要监视多个目录,使用addPaths()来加入监视,如果要一处不需要监视的目录,可以使用removePath(),removePaths()函数.当监视的文件被修改或删除时,产生一个fileChanged()信号,如果被监视的目录被修改或删除,产生directoryChanged()信号,下例实现了监视指定目录的功能.
    #include
    #include
    #include
    #Include"Msg.h"
    using namespace std;
    int main(int argc,char **argv)
    {
        QApplication app(argc,argv);
        QTextCodec::setCodecForTr(QTextCodec::codecForLocale())
        
        Msg msg;
        msg.show();
        return app.exec();
    }
    Msg::Msg()
    {
       QFont font;
       font.setPointSize(24);
       setFont(font);
       QStringList args=qApp->arguments();
       QString path;
       if(args.count()>1)
         path=args[1];
       else
         path=QDir::currentPath();
       label=new QLabel();
       label->setText(tr("
    监视的目录:")+path);
       
       QVBoxLayout *layout=new QVBoxLayout;
       layout->addWidget(label);
       setLayout(layout);
       
       fsWatcher.addPath(path);
       connect(&fsWatcher,SIGNAL(directoryChanged(QString)),this,SLOT(directoryChanged(QString)));
    }
    在构造函数中读取命令指定的目录作为监视目录,如果没有指定则监视当前目录,使用connect()函数将目录的directroyChanged()信号和响应函数连接.
    void Msg::directoryChanged(QString path)
    {
        QMessageBox::information(NULL,tr("
    目录变化"),path);
    }

    文件引擎
    Qt
    QtDir,QFile,QFileInfo类在内部都使用一个类,QAbstractFileEngine.通过继承QAbstractFileEngine,可以编写自己的文件处理函数,然后继承QAbstractFileEngineHander类注册自己的文件引擎,然后这样就可以使用自己的文件读取引擎了.QAbstractFileEngineHandler是创建QAbstractFileEngine的类工厂.当打开一个文件时,Qt通过内部注册的文件引擎链表,选择合适的文件引擎并创建相应的引擎对象.为了安装一个特定的文件引擎,必须继承QAbstractFileEngineHandler并实现create()函数.实例化引擎时Qt自动注册该引擎,最后注册的引擎比之前注册的优先级高.
    如果想读取tar文件的引擎,可以从QAbstractFileEngineHandler类继承
    class TarEngineHandler:public QAbstractFileEngineHandler
    {
        public:
            QAbstractFileEngine *create(const QString &fileName) const;
    };
    create()
    函数返回TarEngine对象,TarEngine是文件引擎,时真正的文件处理类.
    QAbstractFileEngine *TarEngineHandler::create(const QString &fileName) const
    {
        return fileName.toLower().endsWith(".tar")?new TarEngine(fileName):0;
    }

    展开全文
  • QFile 用法

    万次阅读 2016-09-28 15:12:21
    1、QFile类提供读写文件的接口。 2、QFile是一个I/O设备,用来读写文本文件、二进制文件和资源。一个QFile可以单独使用,或者使用QTextStream或QDataStream更方便。 3、文件名通常通过构造函数传递,但是可以使用...
                   
    

    1、QFile类提供读写文件的接口。

    2、QFile是一个I/O设备,用来读写文本文件、二进制文件和资源。一个QFile可以单独使用,或者使用QTextStream或QDataStream更方便。

    3、文件名通常通过构造函数传递,但是可以使用setFileName()函数在任何时候设置文件名。不管任何操作系统中,QFile所支持的分隔符是‘/’(斜杠),不支持使用分隔符’\’(反斜杠)。

    4、调用函数exists()检查文件是否存在,可以使用remove()函数删除一个文件。(QFileInfo和QDir支持更加高端的文件系统相关的操作)。

    5、调用函数open()、close()打开与关闭文件,使用flush()来刷新文件。通常使用QTextStream或QDataStream来读写数据;但是,你也可以调用从QIODevice继承而来的函数,read()、readLine()、readAll()、write()。QFile还继承了每次只操作一个字符的函数getChar()、putChar()和ungetChar()。

      6、 调用函数size()返回文件大小,调用函数pos()获取文件当前位置,或调用函数seek()把文件移动至新的位置。如果已至文件结尾,返回true。

    展开全文
  • Qt翻译相关类之QFile类

    2020-02-03 13:49:08
    在一个QFile类提供一个接口,用于读取和写入文件。更多... Header: #include <QFile> qmake: QT += core Inherits: QFileDevice Inherited By: QTemporaryFile 所有成员的列表,...

    QFile 类

    一个QFile类提供一个接口,用于读取和写入文件。更多...

    Header: #include <QFile>
    qmake: QT += core
    Inherits: QFileDevice
    Inherited By:

    QTemporaryFile

    注意:此类中的所有函数都是可重入的

    公共类别

    typedef DecoderFn

    公共函数

      QFile(const QString &name, QObject *parent)
      QFile(QObject *parent)
      QFile(const QString &name)
      QFile()
    virtual ~QFile()
    bool copy(const QString &newName)
    bool exists() const
    bool link(const QString &linkName)
    bool open(FILE *fh, QIODevice::OpenMode mode, QFileDevice::FileHandleFlags handleFlags = DontCloseHandle)
    bool open(int fd, QIODevice::OpenMode mode, QFileDevice::FileHandleFlags handleFlags = DontCloseHandle)
    bool remove()
    bool rename(const QString &newName)
    void setFileName(const QString &name)
    QString symLinkTarget() const

    虚拟成员函数

    virtual QString fileName() const override
    virtual bool open(QIODevice::OpenMode mode) override
    virtual QFileDevice::Permissions permissions() const override
    virtual bool resize(qint64 sz) override
    virtual bool setPermissions(QFileDevice::Permissions permissions) override
    virtual qint64 size() const override

    静态公共成员

    bool copy(const QString &fileName, const QString &newName)
    QString decodeName(const QByteArray &localFileName)
    QString decodeName(const char *localFileName)
    QByteArray encodeName(const QString &fileName)
    bool exists(const QString &fileName)
    bool link(const QString &fileName, const QString &linkName)
    QFileDevice::Permissions permissions(const QString &fileName)
    bool remove(const QString &fileName)
    bool rename(const QString &oldName, const QString &newName)
    bool resize(const QString &fileName, qint64 sz)
    bool setPermissions(const QString &fileName, QFileDevice::Permissions permissions)
    QString symLinkTarget(const QString &fileName)

    详细说明

    QFile是用于读取和写入文本以及二进制文件和 resources的I / O设备。一个QFile时可通过本身或使用,更方便地,具有QTextStreamQDataStream

    文件名通常在构造函数中传递,但可以随时使用setFileName()进行设置。QFile期望文件分隔符为'/',而不管操作系统是什么。不支持使用其他分隔符(例如,“ \”)。

    您可以使用exist()检查文件是否存在,并使用remove()删除文件。(QFileInfoQDir提供了更高级的文件系统相关操作。)

    该文件用open()打开,用close()关闭,然后用flush()刷新。通常使用QDataStreamQTextStream读写数据,但是您也可以调用QIODevice继承的函数read(),readLine(),readAll(),write()。QFile还继承了getChar(),putChar()和ungetChar(),它们一次只工作一个字符。

    文件的大小按size()返回。您可以使用pos()获取当前文件位置,或使用seek()移至新文件位置。如果到达文件末尾,则atEnd()返回true

    直接读取文件

    以下示例逐行读取文本文件:

      QFile file("in.txt");
     if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
           return;
    
     while (!file.atEnd()) {
           QByteArray line = file.readLine();
           process_line(line);
     }

    传递给open()的QIODevice :: Text标志告诉Qt将Windows样式的行终止符(“ \ r \ n”)转换为C ++样式的终止符(“ \ n”)。默认情况下,QFile假定为二进制,即,它不对文件中存储的字节执行任何转换。

    使用流读取文件

    下一个示例使用QTextStream逐行读取文本文件:

     QFile file("in.txt");
     if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
              return;
    
     QTextStream in(&file);
     while (!in.atEnd()) {
           QString line = in.readLine();
           process_line(line);
     }

    QTextStream负责将磁盘上存储的8位数据转换为16位Unicode QString。默认情况下,它假定使用用户系统的本地8位编码(例如,在大多数基于unix的操作系统上为UTF-8;有关详细信息,请参见QTextCodec :: codecForLocale())。可以使用QTextStream :: setCodec()进行更改。

    要编写文本,我们可以使用operator <<(),将其重载以在左侧获取QTextStream并在右侧获取各种数据类型(包括QString):

    
          QFile file("out.txt");
          if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
              return;
    
          QTextStream out(&file);
          out << "The magic number is: " << 49 << "\n";

    QDataStream与之类似,您可以使用operator <<()写入数据,并使用operator >>()读回数据。有关详细信息,请参见类文档。

    使用QFileQFileInfoQDir通过Qt访问文件系统时,可以使用Unicode文件名。在Unix上,这些文件名被转换为8位编码。如果要使用标准C ++ API(<cstdio><iostream>)或特定于平台的API来访问文件而不是QFile,则可以使用encodeName()和encodeName()函数在Unicode文件名和8位文件名之间进行转换。

    在Unix上,有一些特殊的系统文件(例如in中/proc),其size()总是返回0,但是您仍然可以从该文件中读取更多数据;数据是直接响应您调用read()生成的。但是,在这种情况下,您不能使用atEnd()来确定是否还有更多数据要读取(因为atEnd()对于声称大小为0的文件将返回true)。相反,您应该重复调用readAll(),或者重复调用read()或readLine(),直到无法读取更多数据为止。下一个示例使用QTextStream/proc/modules逐行读取:

    
          QFile file("/proc/modules");
          if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
              return;
    
          QTextStream in(&file);
          QString line = in.readLine();
          while (!line.isNull()) {
              process_line(line);
              line = in.readLine();
          }

    Signals

    与其他QIODevice实现不同,例如QTcpSocketQFile不会发出aboutToClose(),bytesWritten()或readyRead()信号。此实现细节意味着QFile不适合读写某些类型的文件,例如Unix平台上的设备文件。

    平台特定问题

    在类似Unix的系统和Windows上,文件权限的处理方式有所不同。在类Unix系统上的不可目录中,无法创建文件。在Windows上,情况并非总是如此,例如,“我的文档”目录通常是不可写的,但仍可以在其中创建文件。

    Qt对文件权限的理解是有限的,这尤其会影响QFile :: setPermissions()函数。在Windows上,Qt将仅设置旧版只读标志,并且仅在未传递Write *标志时设置该标志。Qt不会操纵访问控制列表(ACL),这使得该功能对NTFS卷几乎没有用。对于使用VFAT文件系统的USB记忆棒,它可能仍然有用。POSIX ACL也不被操纵。

    另请参见QTextStreamQDataStreamQFileInfoQDirThe Qt Resource 系统。

    会员类型文件

    typedef QFile :: DecoderFn

    这是指向具有以下签名的函数的指针的typedef:

     QString myDecoderFunc(const QByteArray &localFileName);

    另请参见setDecodingFunction()。

    会员功能文档

    QFile :: QFile(const QStringnameQObject * parent

    构造一个具有给定对象的新文件对象,以表示具有指定名称的文件。

    QFile :: QFile(QObject * parent

    使用给定的parent构造一个新的文件对象。

    QFile :: QFile(const QStringname

    构造一个新的文件对象来表示具有给定名称的文件。

    QFile :: QFile()

    构造一个QFile对象。

    [virtual]QFile :: 〜QFile()

    销毁文件对象,必要时将其关闭。

    bool QFile::copy(const QString &newName)

    将当前由fileName()指定的文件复制到名为newName的文件中。返回true成功 否则返回false

    请注意,如果已经存在名称为newName的文件,则copy()返回false(即QFile不会覆盖它)。

    源文件在复制之前已关闭。

    另请参见setFileName()。

    [static] bool QFile::copy(const QString &fileName, const QString &newName)

    这是一个重载功能。

    将文件fileName复制到newName。返回true成功 否则返回false

    如果名称为newName的文件已经存在,则copy()返回false(即QFile不会覆盖它)。

    另请参见rename().

    [static]QString QFile :: decodeName(const QByteArray localFileName

    这与使用localFileNameQFile :: encodeName()相反。

    另请参见encodeName()。

    [static]QString QFile :: decodeName(const char * localFileName

    这是一个重载功能。

    返回给定localFileName的Unicode版本。有关详细信息,请参见encodeName()。

    [static]QByteArray QFile :: encodeName(const QString fileName

    fileName转换为由用户的语言环境确定的本地8位编码。这足以满足用户选择的文件名。硬编码到应用程序中的文件名只能使用7位ASCII文件名字符。

    另请参见encodeName().

    [static] bool QFile::exists(const QString &fileName)

    返回truefileName指定的文件是否存在;否则返回false

    注意:如果fileName是指向不存在文件的符号链接,则返回false。

    bool QFile::exists() const

    这是一个重载功能。

    返回truefileName()指定的文件是否存在;否则返回false。否则返回false

    另请参见fileName()和setFileName()。

    [override virtual]QString QFile :: fileName()const

    重新实现:QFileDevice :: fileName()const。

    返回由setFileName()或QFile构造函数设置的名称。

    另请参见setFileName()和QFileInfo :: fileName()。

    创建一个名为linkName的链接,该链接指向fileName()当前指定的文件。什么是链接取决于底层文件系统(在Windows上是快捷方式还是在Unix上是符号链接)。返回true成功 否则返回false

    该功能不会覆盖文件系统中已经存在的实体;在这种情况下,link()将返回false并将error()设置为返回RenameError

    注意:要在Windows上创建有效的链接,linkName必须具有.lnk文件扩展名。

    另请参见setFileName()。

    这是一个过载功能。

    创建一个名为linkName的链接,该链接指向文件fileName。什么是链接取决于底层文件系统(在Windows上是快捷方式还是在Unix上是符号链接)。返回true成功 否则返回false

    另请参阅link().

    [virtual] bool QFile::open(OpenMode mode)

    重新实现:QIODevice :: open(QIODevice :: OpenMode模式)。

    使用OpenMode 模式打开文件,如果成功,则返回true;否则,返回true。否则为假。

    模式必须的QIODevice ::只读的QIODevice ::只写,或QIODevice中::读写。它还可能具有其他标志,例如QIODevice :: TextQIODevice :: Unbuffered

    注意:WriteOnlyReadWrite模式下,如果相关文件尚不存在,则此函数将尝试在打开新文件之前创建它。

    另请参见QIODevice :: OpenModesetFileName()。

    bool QFile::open(FILE *fh, OpenMode mode, FileHandleFlags handleFlags = DontCloseHandle)

    这是一个重载功能。

    在给定模式下打开现有文件句柄fhhandleFlags可用于指定其他选项。返回成功 否则返回。truefalse

    例:

    #include <stdio.h>
    
      void printError(const char* msg)
      {
          QFile file;
          file.open(stderr, QIODevice::WriteOnly);
          file.write(msg, qstrlen(msg));        // write to stderr
          file.close();
      }

    QFile时使用此功能,行为打开close()由受控AutoCloseHandle标志。如果指定了AutoCloseHandle,并且此函数成功执行,则调用close()将关闭采用的句柄。否则,close()实际上不会关闭文件,而只会刷新它。

    警告:

    1. 如果FH不引用一个普通的文件,例如,它是stdinstdout或者stderr,你可能不能够寻求()。在这些情况下,size()返回0。有关更多信息,请参见QIODevice :: isSequential()。
    2. 由于此函数打开文件时未指定文件名,因此您不能将此QFileQFileInfo一起使用。

    Windows平台注意事项

    访问文件和其他随机访问设备时,必须以二进制模式打开fh(即,模式字符串必须包含“ b”,如在“ rb”或“ wb”中一样)。如果您将QIODevice :: Text传递给mode,则Qt将转换行尾字符。顺序设备(例如stdin和stdout)不受此限制的影响。

    您需要启用对控制台应用程序的支持,以便在控制台上使用stdin,stdout和stderr流。为此,请将以下声明添加到应用程序的项目文件中:

     CONFIG += console

    另请参见close()。

    bool QFile::open(int fd, OpenMode mode, FileHandleFlags handleFlags = DontCloseHandle)

    这是一个重载功能。

    以给定模式打开现有文件描述符fdhandleFlags可用于指定其他选项。返回成功 否则返回。truefalse

    QFile时使用此功能,行为打开关闭()由受控AutoCloseHandle标志。如果指定了AutoCloseHandle,并且此函数成功执行,则调用close()将关闭采用的句柄。否则,close()实际上不会关闭文件,而只会刷新它。

    使用此功能打开的QFile会自动设置为原始模式。这意味着文件输入/输出功能很慢。如果遇到性能问题,则应尝试使用其他打开功能之一。

    警告:如果fd不是常规文件,例如0(stdin),1(stdout)或2(stderr),则可能无法seek()。在这些情况下,size()返回0。有关更多信息,请参见QIODevice :: isSequential()。

    警告:由于此函数打开文件时未指定文件名,因此您不能将此QFileQFileInfo一起使用。

    另请参见close()。

    [override virtual]QFileDevice :: Permissions QFile :: Permissions()const

    重新实现:QFileDevice :: permissions()const。

    另请参见setPermissions()。

    [static] Permissions QFile::permissions(const QString &fileName)

    这是一个重载功能。

    返回的完整OR-ED一起组合一个QFile::Permission文件名

    boolle :: remove()

    删除由fileName()指定的文件。返回true成功 否则返回false

    在删除文件之前,将其关闭。

    另请参见setFileName()。

    [static] bool QFile::remove(const QString &fileName)

    这是一个重载功能。

    删除给定的fileName指定的文件。

    返回true成功 否则返回false

    另请参见remove()。

    bool QFile::rename(const QString &newName)

    将当前由fileName()指定的文件重命名为newName。返回true成功 否则返回false

    如果名称为newName的文件已经存在,则返回named()false(即QFile不会覆盖它)。

    该文件在重命名之前已关闭。

    如果重命名操作失败,Qt将尝试将此文件的内容复制到newName,然后删除此文件,仅保留newName。如果该复制操作失败或无法删除此文件,则将删除目标文件newName以恢复旧状态。

    另请参见setFileName()。

    [static] bool QFile::rename(const QString &oldName, const QString &newName)

    这是一个过载功能。

    将文件oldName重命名为newName。返回true成功 否则返回false

    如果已经存在名称为newName的文件,则将重命名()返回false(即QFile将不会覆盖它)。

    另请参见rename().

    [virtual] bool QFile::resize(qint64 sz)

    重新实现:QFileDevice :: resize(qint64 sz)。

    [static] bool QFile::resize(const QString &fileName, qint64 sz)

    这是一个过载功能。

    fileName设置为sz大小(以字节为单位)。true如果调整成功,则返回;否则返回false。否则为假。如果sz当前大于fileName,则新字节将被设置为0;如果sz较小,则文件将被截断。

    警告:如果文件不存在,此功能可能会失败。

    另请参见resize()。

    void QFile::setFileName(const QString &name)

    设置名称的文件。该名称不能有路径,相对路径或绝对路径。

    如果文件已经打开,请勿调用此函数。

    如果文件名没有路径或相对路径,则使用的路径将是open()调用应用程序的当前目录路径。

    例:

    
      QFile file;
      QDir::setCurrent("/tmp");
      file.setFileName("readme.txt");
      QDir::setCurrent("/home");
      file.open(QIODevice::ReadOnly);      // opens "/home/readme.txt" under Unix

    请注意,目录分隔符“ /”适用于Qt支持的所有操作系统。

    另请参见fileName(),QFileInfoQDir

    [override virtual]bool QFile :: setPermissions(QFileDevice :: Permissions 权限

    重新实现:QFileDevice :: setPermissions(QFileDevice :: Permissions权限)。

    将文件的权限设置为指定的权限true如果成功,或者false无法修改权限,则返回。

    警告:此功能不处理ACL,这可能会限制其有效性。

    另请参阅权限()和setFileName()。

    [static] bool QFile::setPermissions(const QString &fileName, Permissions permissions)

    这是一个过载功能。

    fileName文件的权限设置为Permissions

    [virtual] qint64 QFile::size() const

    重新实现:QFileDevice :: size()常量。

    [static] QString QFile::symLinkTarget(const QString &fileName)

    返回由fileName指定的符号链接(或Windows上的快捷方式)所引用的文件或目录的绝对路径,如果fileName与符号链接不对应,则返回空字符串。

    该名称可能不代表现有文件;它只是一个字符串。如果符号链接指向现有文件,则QFile :: exists()返回true

    此功能在Qt 4.2中引入。

    QString QFile::symLinkTarget() const

    这是一个过载功能。

    返回符号链接(或Windows上的快捷方式)指向的文件或目录的绝对路径,如果对象不是符号链接,则返回空字符串。

    该名称可能不代表现有文件;它只是一个字符串。如果符号链接指向现有文件,则QFile :: exists()返回true

    此功能在Qt 4.2中引入。

    另请参见fileName()和setFileName()。

    展开全文
  • QFile类参考

    千次阅读 2013-07-02 11:09:55
    QFile类是一个操作文件的输入/输出设备。 详情请见…… #include qfile.h> 继承了 QIODevice。 所有成员函数的列表。 公有成员 QFile () QFile ( const QString & name ) ~QFile () QString name () ...

    QFile类是一个操作文件的输入/输出设备。 

    #include <qfile.h>

    继承了 QIODevice

    所有成员函数的列表。

    公有成员

    • QFile ()
    • QFile ( const QString & name )
    • ~QFile ()
    • QString name () const
    • void setName ( const QString & name )
    • typedef QCString (* EncoderFn ) ( const QString & fileName )
    • typedef QString (* DecoderFn ) ( const QCString & localfileName )
    • bool exists () const
    • bool remove ()
    • virtual bool open ( int m )
    • bool open ( int m, FILE * f )
    • bool open ( int m, int f )
    • virtual void close ()
    • virtual void flush ()
    • virtual Offset size () const
    • virtual Offset at () const
    • virtual bool at ( Offset pos )
    • virtual bool atEnd () const
    • virtual Q_LONG readBlock ( char * p, Q_ULONG len )
    • virtual Q_LONG readLine ( char * p, Q_ULONG maxlen )
    • Q_LONG readLine ( QString & s, Q_ULONG maxlen )
    • virtual int getch ()
    • virtual int putch ( int ch )
    • virtual int ungetch ( int ch )
    • int handle () const

    静态公有成员

    重要的继承成员



    详细描述

    QFile类是一个操作文件的输入/输出设备。

    QFile是用来读写二进制文件和文本文件的输入/输出设备。QFile可以自己单独被使用,但是如果和QDataStreamQTextStream一起使用将更加方便。

    文件名通常可以通过构造函数来传递,但也可以使用setName()来设置。你可以通过exists()来检查一个文件是否存在并且可以通过remove()来移去一个文件。

    文件可以用open()来打开、用close()来关闭、用flush()来刷新。数据通常可以使用QDataStream或者QTextStream进行读写,但你也可以使用readBlock()和readLine()来读,使用writeBlock()来写。QFile也支持getch()、 ungetch()和putch()。

    size()可以返回文件的大小。你可以通过使用at()函数得到当前文件位置或者移到一个新的文件位置。如果你到了文件的末尾,atEnd()返回真。handle()返回文件句柄。

    这里是一个使用QTextStream来一行一行地读取一个文本文件的代码段。它会把每一行带上一个行号打印出来。

        QStringList lines;
        QFile file( "file.txt" );
        if ( file.open( IO_ReadOnly ) ) {
            QTextStream stream( &file );
            QString line;
            int n = 1;
            while ( !stream.eof() ) {
                line = stream.readLine(); // 不包括“\n”的一行文本
                printf( "%3d: %s\n", n++, line.latin1() );
                lines += line;
            }
            file.close();
        }
      

    写文本也很容易(假设我们有一个行的字符串列表要写):

        QFile file( "file.txt" );
        if ( file.open( IO_WriteOnly ) ) {
            QTextStream stream( &file );
            for ( QStringList::Iterator it = lines.begin(); it != lines.end(); ++it )
                stream << *it << "\n";
            file.close();
        }
      

    QFileInfo类控制文件的详细信息,比如访问权限、文件日期和文件类型。

    QDir类管理目录和文件名列表。

    Qt使用Unicode文件名。如果你想在Unix系统上使用你自己的输入/输出,你可以使用encodeName()(和decodeName())来把文件名转换为本地编码。

    也可以参考QDataStreamQTextStream输入/输出和网络


    成员类型文档

    QFile::DecoderFn

    QFile::setDecodingFunction()使用。

    QFile::EncoderFn

    QFile::setEncodingFunction()使用。


    成员函数文档

    QFile::QFile ()

    构造一个没有名称的QFile。

    QFile::QFile ( const QString & name )

    构造一个文件名为name的QFile。

    也可以参考setName()。

    QFile::~QFile ()

    析构QFile。调用close()。

    bool QFile::at ( Offset pos ) [虚]

    设置文件索引到pos。如果成功,返回真,否则返回假。

    实例:

        QFile f( "data.bin" );
        f.open( IO_ReadOnly );                      // 索引设置为0
        f.at( 100 );                                // 设置索引为100
        f.at( f.at()+50 );                          // 设置索引为150
        f.at( f.size()-80 );                        // 设置索引为EOF之前的80
        f.close();
      

    不带参数使用at()可以重新得到文件的位移。

    警告:如果文件是使用IO_Append方式打开(open())的话,结果是未定义的。

    也可以参考size()和open()。

    QIODevice中重新实现的。

    Offset QFile::at () const [虚]

    这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

    返回文件中的位置。

    也可以参考size()。

    QIODevice中重新实现的。

    bool QFile::atEnd () const [虚]

    如果到达文件的末尾,返回真,否则返回假。

    也可以参考size()。

    QIODevice中重新实现的。

    void QFile::close () [虚]

    关闭一个打开的文件。

    如果一个文件是使用一个存在的文件句柄打开的,那么它不是关闭的。如果这个存在的文件句柄是一个FILE*,这个文件被刷新。如果这个存在的文件句柄是一个int文件描述符,那么对这个文件将没有操作。

    一些“在后面写的”文件系统也许会在关闭文件时报告一个未详细说明的错误。这些错误只表明在上一次打开(open())之后也许发生了一些错误。在这种情况下,status()会在关闭之后(close())报告IO_UnspecifiedError,否则是IO_Ok

    也可以参考open()和flush()。

    实例:application/application.cppchart/chartform_files.cpphelpviewer/helpwindow.cppmdi/application.cppqdir/qdir.cppqwerty/qwerty.cppxml/outliner/outlinetree.cpp

    QIODevice中重新实现的。

    QString QFile::decodeName ( const QCString & localFileName ) [静态]

    这个将会使用localFileName做与QFile::encodeName()相反的操作。

    也可以参考setDecodingFunction()。

    QCString QFile::encodeName ( const QString & fileName ) [静态]

    当你使用QFile时,在Qt中QFileInfoQDir访问文件系统,你可以使用Unicode文件名。在Unix上,这些文件名被转换为8位的编码。如果你想在Unix上使用你自己的文件输入/输出,你应该使用这个函数来转换文件名。在Windows NT上,Unicode文件名在文件系统中是直接被支持的并且这个函数应该避免使用。在Windows 95上,在这时候非Latin1的场所设置是不被支持的。

    默认情况下,这个函数把fileName转换为本地的8位编码,这取决于用户的场所设置。对于用户选择的文件名这足够了。应用程序中的文件名硬编码只是需要使用7位ASCII文件名字符。

    这种转换方案可以使用setEncodingFunction()来改变。如果你需要给用户一个存储文件名为utf-8等等情况下,这也许很有用,但是这些文件名可能在这之后对其它应用程序来说是不可识别的。

    也可以参考decodeName()。

    bool QFile::exists ( const QString & fileName ) [静态]

    如果给定的文件fileName存在,返回真,否则返回假。

    实例:chart/chartform.cppdirview/dirview.cpphelpviewer/helpwindow.cpp

    bool QFile::exists () const

    这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

    如果这个文件存在,返回真,否则返回假。

    也可以参考name()。

    void QFile::flush () [虚]

    刷新文件缓存到磁盘。

    close()也刷新文件缓存。

    QIODevice中重新实现的。

    int QFile::getch () [虚]

    从文件中读取一个单字节/字符。

    返回所读的字节/字符,如果到达文件的末尾,返回-1。

    也可以参考putch()和ungetch()。

    QIODevice中重新实现的。

    int QFile::handle () const

    返回这个文件的文件句柄。

    如果是一个小的正整数,可以用在像fdopen()和fcntl()这样的C库函数中,也可以用在QSocketNotifier中。

    如果这个文件没有被打开或者存在错误,handle()返回-1。

    也可以参考QSocketNotifier

    QString QFile::name () const

    返回由setName()设置的名称。

    也可以参考setName()和QFileInfo::fileName()。

    bool QFile::open ( int m ) [虚]

    使用m模式和当前指定的文件名打开文件。如果成功,返回真,否则返回假。

    模式参数m必须是下列标记的组合:

    • IO_Raw 指定直接的(非缓存的)文件访问。
    • IO_ReadOnly 以只读模式打开文件。
    • IO_WriteOnly 以只写模式(并且截短)打开文件。
    • IO_ReadWrite 以读/写模式打开文件,等于(IO_ReadOnly | IO_WriteOnly)
    • IO_Append 以附加的模式打开文件。当你想向日志文件写些东西时这个模式非常有用。文件索引被设置到文件末尾。注意如果你在附加模式中使用at()定位文件索引,结果将是为定义的。
    • IO_Truncate 截短文件。
    • IO_Translate 在MS-DOS、Windows和OS/2下对文本文件翻译回车和换行。

    直接访问模式在输入/输出的块操作使用4千字节或更大的情况下使用最好。当每次读小量数据时,缓存访问工作的更好。

    重要:当使用缓存的文件工作时,数据没有被立刻写到文件中。调用flush()可以确保数据被真正地写完。

    警告:如果你有一个缓存文件以同时读写方式打开,你不要在一次输入操作之后立即输出,反之亦然。你必须在输入和输出操作之间调用flush()或者一次文件定位操作,比如seek(),否则缓存中可能会包含无用信息。

    如果文件不存在并且指定IO_WriteOnlyIO_ReadWrite时,文件被创建。

    实例:

        QFile f1( "/tmp/data.bin" );
        QFile f2( "readme.txt" );
        f1.open( IO_Raw | IO_ReadWrite | IO_Append );
        f2.open( IO_ReadOnly | IO_Translate );
      

    也可以参考name()、 close()、isOpen()和flush()。

    实例:action/application.cppapplication/application.cppchart/chartform_files.cpphelpviewer/helpwindow.cppqdir/qdir.cppqwerty/qwerty.cppxml/outliner/outlinetree.cpp

    QIODevice中重新实现的。

    bool QFile::open ( int m, FILE * f )

    这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

    使用m模式和一个存在的文件句柄f打开文件。如果成功,返回真,否则返回假。

    实例:

        #include <stdio.h>
    
        void printError( const char* msg )
        {
            QFile f;
            f.open( IO_WriteOnly, stderr );
            f.writeBlock( msg, qstrlen(msg) );      // 写到标准错误输出(stderr)
            f.close();
        }
      

    当使用这个函数打开一个QFile时,close()并不真正关闭这个文件,只是刷新它。

    警告:如果f标准输入(stdin)标准输出(stdout)标准错误输出(stderr),你也许不能搜索。更详细的信息请看QIODevice::isSequentialAccess()。

    也可以参考close()。

    bool QFile::open ( int m, int f )

    这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

    使用m模式和一个存在的文件描述符f打开文件。如果成功,返回真,否则返回假。

    当使用这个函数打开一个QFile时,close()并不真正关闭这个文件。

    使用这个函数打开一个QFile时,它被自动设置为直接模式,这就意味着文件输入/输出函数是慢的。如果你需要更好的执行效率,请你试着使用其它打开函数。

    警告:如果f是0(stdin)、1(stdout)或2(stderr)其中之一时,你也许不能搜索。size()被设置为INT_MAX(在limits.h文件中)。

    也可以参考close()。

    int QFile::putch ( int ch ) [虚]

    写字符ch到文件。

    返回ch,或者如果发生错误,返回-1。

    也可以参考getch()和ungetch()。

    QIODevice中重新实现的。

    QByteArray QIODevice::readAll () [虚]

    这个方便的函数返回这个设备中的所有剩余数据。

    Q_LONG QFile::readBlock ( char * p, Q_ULONG len ) [虚]

    从这个文件中读取最多maxlen字节到p并且返回实际读取的字节数量。

    如果发生严重错误,返回-1。

    警告:当一个缓存文件为了读写而打开时,我们已经在使用一些C库时遇到了问题。如果在一个写操作后立即执行一个读操作,读缓存中就会包含无用信息。更可怕的是,一些无用信息被写到文件中。在readBlock()之前调用flush()就可以解决这个问题。

    也可以参考writeBlock()。

    实例:qwerty/qwerty.cpp

    QIODevice中重新实现的。

    Q_LONG QFile::readLine ( char * p, Q_ULONG maxlen ) [虚]

    读一行文本。

    从这个文本中读取最多maxlen字节或者行结束符到p,哪个先发生以哪个为准。返回实际读取的字节数量,或者如果发生错误,返回-1。换行将不会被省略。

    这个函数只对缓存文件有效。避免在以IO_Raw标记方式打开的文件中使用readLine()。

    也可以参考readBlock()和QTextStream::readLine()。

    QIODevice中重新实现的。

    Q_LONG QFile::readLine ( QString & s, Q_ULONG maxlen )

    这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

    读一行文本。

    从这个文本中读取最多maxlen字节或者行结束符到字符串s,哪个先发生以哪个为准。返回实际读取的字节数量,或者如果发生错误,返回-1。换行将不会被省略。

    这个函数只对缓存文件有效。避免在以IO_Raw标记方式打开的文件中使用readLine()。

    注意这个字符串只能作为无格式的Latin1字节来读,不是Unicode。

    也可以参考readBlock()和QTextStream::readLine()。

    bool QFile::remove ()

    移去当前指定文件名的文件。如果成功,返回真,否则返回假。

    在文件被移去之前,它被关闭。

    bool QFile::remove ( const QString & fileName ) [静态]

    这是一个重载成员函数,提供了方便。它的行为基本上和上面的函数相同。

    移去文件fileName。如果成功,返回真,否则返回假。

    void QFile::setDecodingFunction ( DecoderFn f ) [静态]

    设置8位文件名的译码函数位f。默认使用本地指定的8位编码。

    也可以参考encodeName()和decodeName()。

    void QFile::setEncodingFunction ( EncoderFn f ) [静态]

    设置Unicode文件名的编码函数为f。默认使用本地指定的8位编码。

    也可以参考encodeName()。

    void QFile::setName ( const QString & name )

    设置文件的名称为name。这个名称可以不包含路径,也可以包含相对路径或者绝对路径。

    如果文件已经被打开,不要调用这个函数。

    如果文件名没有路径或者使用相对路径,这是使用的路径就是应用程序在调用open()的时候的当前路径。

    实例:

         QFile f;
         QDir::setCurrent( "/tmp" );
         f.setName( "readme.txt" );
         QDir::setCurrent( "/home" );
         f.open( IO_ReadOnly );        // 在Unix下打开“/home/readme.txt”
      

    注意Qt支持在所有的操作系统中使用目录分隔符“/”。

    也可以参卡name()、QFileInfoQDir

    Offset QFile::size () const [虚]

    返回文件大小。

    也可以参考at()。

    实例:table/statistics/statistics.cpp

    QIODevice中重新实现的。

    int QFile::ungetch ( int ch ) [虚]

    把字符ch放回到这个文件中并且如果索引位置不是零的话,减一。

    这个函数正常地被调用就是“撤销”getch()操作。

    返回ch,否则,如果发生错误,返回-1。

    也可以参考getch()和putch()。

    QIODevice中重新实现的。


    转自:http://www.kuqin.com/qtdocument/qfile.html#atEnd

    展开全文
  • QFile类和QTextStream类程序效果展示QFile类读文本内容:QTextStream类写文本: 程序 main.cpp #include <QCoreApplication> #include <QFile> #include <QTextStream> #include <QDebug> ...
  • QT的QFile类的使用

    2020-12-10 09:44:45
    QFile类提供用于读取和写入文件的接口。 QFile是用于读取和写入文本以及二进制文件和资源的I / O设备。 QFile可以单独使用,或者更方便地与QTextStream或QDataStream一起使用。 文件名通常在构造函数中传递,但是...
  • Qt: QFile类读写文本实例

    万次阅读 2016-06-21 13:12:12
    读写文本文件有两种方法: 1、直接利用传统的QFile类方法。 2、利用QTextStream类方法。
  • Qt的QFile类详解

    千次阅读 2014-02-11 15:08:55
    QFile类是操作文件的输入输出设备类。QFile是一个用来读写二进制文件与文本文件的输入输出设备。QFile可以被自己或更方便的类 DataStream或QTextStream使用。文件的名字通常通过构造传递,但可以通过se
  • Qt - QFile类(翻译)

    2017-02-13 11:21:00
    QFile 提供了读取文件的接口。继承于QFileDevice. QFile 是一种IO设备,用来读写文本和二进制文件和资源。QFile可单独使用,但和QTextStream或QDataStream一起使用更方便。 文件名可以通过构造函数传入,但也...
  • 我用的是QT5的QFile类实现的 转载于:https://www.cnblogs.com/54sen/p/7092834.html
  • QFile类读写文件编程

    千次阅读 2017-03-04 15:50:18
    QFile提供了从文件中读取和写入数据的能力。 我们通常会将文件路径作为参数传给QFile的构造函数。不过也可以在创建好对象最后,使用setFileName()来修改。QFile需要使用 / 作为文件分隔符,不过,它会自动将其转换...
  • QFile类详解

    2012-12-28 16:23:00
    QFile类是操作文件的输入输出设备类。QFile是一个用来读写二进制文件与文本文件的输入输出设备。QFile可以被自己或更方便的类 DataStream或QTextStream使用。文件的名字通常通过构造传递,但可以通过setName()来...
  • 在qt中,操作现存文件的流程: ...二:QFile 利用这个,我们可以打开文件 三 :QTextStream 这是一个txt流,用于读写文件 具体的代码展示 一:QfileDialog QString path=QFileDialog...
  • QFile类中遇到的问题

    千次阅读 2016-07-16 17:04:55
    在调试时发现QFile使用过程中,读取一直不成功。 原因是:路径不对 注意:相对路径的使用需要注意,而且需要注意空格符 调试方法:采用手动打开文件的方式去打开目标文件,看自己定义的字符串路径和目标文件的...
  • Qt:QFile类实例源代码(读写文件)

    千次阅读 2016-06-29 21:00:45
    功能描述: 1、新建文件,写入数据。 2、打开文件,读取数据。...mFile.open(QIODevice::WriteOnly | QIODevice::Text...Qt: QFile类读写文本实例 :http://blog.csdn.net/rl529014/article/details/51725556
  • 想实现文本文件数据可用发出readyRead(),然后开始读取文件内容!readyRead()信号在QFile里怎么用呢,什么时候会发出这个信号?
  • QFile的readLine函数读取到的数据,最后一个字符是回车符,例如读取文件名等要注意,否则打开文件会总是失败
  • QFile

    2021-03-12 09:41:55
    QFile类提供读写文件的接口。QFile是一个I/O设备,用来读写文本文件、二进制文件和资源。一个QFile可以单独使用,或者使用QTextStream或QDataStream更方便。我们可以通过构造函数通过文件路径加载文件,也可以随时...
  • QT QFile

    2021-07-10 15:08:47
    QFile类提供了读取和写入文件的接口。 QFile是一个读写文本和二进制文件和资源的I/O设备。QFile可以单独使用,或者更方便地与QTextStream或QDataStream一起使用。 文件名通常在构造函数中传递,但它可以在任何时候...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 4,640
精华内容 1,856
关键字:

QFile类