首页 > 编程知识 正文

qt中文文档,qt pro文件详解

时间:2023-05-06 09:22:29 阅读:41668 作者:4301

0.详细说明.

QFile类提供用于读取和写入文件的接口。 这是用于读取和写入文本的二进制文件和资源文件的输入/输出设备。 它可以单独使用,也可以更方便地使用QTextStream或QDataStream。 您可以在构造函数中从文件路径加载文件,也可以随时使用setFileName (方法修改文件。

使用exists (方法)确定指定文件是否存在,使用remove (移除)方法删除文件。 其他详细的文件属性由QFileInfo类和QDir类提供。

文件用open (方法打开,close )方法关闭,flush ) )方法刷新缓冲区。 数据流通常由两个类读取和写入: QTextStream和QDataStream。 此外,QIODevice输入/输出设备类还提供read )、readline write (方法操作数据流。 QFile类继承QIODevice的getChar )、putChar )和ungetChar )等方法来顺序处理字符。

文件的字节大小由size ()方法获得。 pos ) )方法获取当前位置,也可以使用seek ) )方法移动到新位置。 此处的位置是指数据流的位置(atEnd ) )方法可以确定是否已读完所有数据。 ()关于读取和写入ps:文件,我一般使用c语言的

下面的示例是:

//首先直接使用文件名初始化file对象。 这里的' in.txt '必须放在当前工作目录中。 否则打开就失败了。 qfilefile('in.txt ); //确定文件是否成功打开,并以文本和只读模式打开。 文本模式是将windows系统的rn设置为“n'. if (! file.open (qiodevice :3360只读| qiodevice 33603360文本) ) return; //除非文件读完. while (! file.atEnd () )//逐行读取。 返回值为字节数组. QByteArray line=file.readLine ); 处理_ line (line; 除了使用QFile读取文本外,读取文本文件还是使用QTextStream比较好。 这个类专门处理和使用文本数据流。 以下示出例子:

//这里照常. qfilefile('in.txt ); if (! file.open (qiodevice :3360只读| qiodevice 33603360文本) ) return; //创建文本数据流对象。 使用file初始化连接流对象和文件。 qtextstreamin (文件); while (! in.atEnd () /读取的内容为字符串. QString line=in.readLine ); 处理_ line (line; } QTextStream负责将存储在磁盘上的8位数据转换为16位统一字符串。 默认情况下,假设正在使用用户系统的本地8位代码。 例如,大多数基于unix的操作系统都使用UTF-8。 QTextStream类的其他内容不在此介绍

1.所有函数方法说明

//通过指定父类或文件路径生成文件对象。

1.1-q文件:3360 q文件(constqstringname );

1.2-q文件:3360 q文件(q object * parent );

1.3-q文件:3360 q文件(constqstringname,QObject * parent );

1.4-boolqfile :3360复制(constqstringnewname );

1.5-boolqfile :3360 copy (constqstringfilename,const QString newName ) [static]

将当前由fileName ()指定的文件复制到名为newName的文件中。 如果操作成功,则返回true;如果操作失败,则返回false;如果newName已经存在或源文件未关闭,则返回false.//sample13360qfilefile ).txt ) 如果//1.txt文件已关闭,且./2.txt文件不存在,请将1.txt复制到上一层路径,然后将true.//sample2:qDebug () qfile3360:copy //给定的

localFileName的Unicode版本.
1.6->QString QFile::decodeName(const QByteArray & localFileName) [static]
1.7->QString QFile::decodeName(const char * localFileName) [static]
//将文件名转换成由用户所在地区确定的本地8位编码。这对于用户选择的文件名来说已经足够了。硬编码到应用程序中的文件名应该只使用7位ASCII文件名字符。
1.8->QString QFile::decodeName(const char * localFileName) [static]

//判断指定文件是否存在.
1.9->bool QFile::exists(const QString & fileName) [static]
1.10->bool QFile::exists() const

//返回值为bool类型可以判断是否存在.qDebug() << QFile::exists("1.txt");

//返回构造的QFile对象的文件名.可以通过setFileName()方法重新设置.
1.11->QString QFile::fileName() const [virtual]
1.12->void QFile::setFileName(const QString & name)

//sample:QFile file;QDir::setCurrent("/tmp");//设置文件名.file.setFileName("readme.txt");//设置当前工作路径.QDir::setCurrent("/home");file.open(QIODevice::ReadOnly); //这里实际打开的文件路径为:"/home/readme.txt" under Unix/Linux.

//创建一个名为linkName的链接,该链接指向当前由fileName()指定的文件。链接是什么取决于底层文件系统(在Windows上是一个快捷方式,还是Unix上的符号链接)。返回true,如果成功;否则返回false。
这个函数不会覆盖文件系统中已经存在的实体;在这种情况下,link()将返回false和set error()以返回RenameError。
注意:为了在Windows上创建一个有效的链接,linkName必须有一个.lnk文件扩展名。
1.13->bool QFile::link(const QString & linkName)
1.14->bool QFile::link(const QString & fileName, const QString & linkName) [static]

//以QIODevice输入输出设备类的枚举变量作为参数,来打开文件.注意:在WriteOnly或ReadWrite模式中,如果相关文件还不存在,那么这个函数将尝试在打开它之前创建一个新文件.
1.15->bool QFile::open(OpenMode mode) [virtual]
1.16->bool QFile::open(FILE * fh, OpenMode mode, FileHandleFlags handleFlags = DontCloseHandle)
1.17->bool QFile::open(int fd, OpenMode mode, FileHandleFlags handleFlags = DontCloseHandle)

//sample:#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();}

//返回指定文件的权限.可读可写可执行等.在Linux系统上对权限的区分更准确.
1.18->Permissions QFile::permissions() const [virtual]
1.19->Permissions QFile::permissions(const QString & fileName) [static]
1.20->bool QFile::setPermissions(Permissions permissions) [virtual]
1.21->bool QFile::setPermissions(const QString & fileName, Permissions permissions) [static]

//删除指定文件.前提源文件必须被关闭.
1.22->bool QFile::remove()
1.23->bool QFile::remove(const QString & fileName) [static]

//sample1:QFile file("1.txt"); file.remove();//sample2:QFile::remove("1.txt");

//修改文件名.如果新的文件名存在.则返回false.前提源文件必须被关闭.QFile不会去覆盖已存在的文件.
1.24->bool QFile::rename(const QString & newName)
1.25->bool QFile::rename(const QString & oldName, const QString & newName) [static]

//对文件的大小进行截取,以为字节为单位.
1.26->bool QFile::resize(qint64 sz) [virtual]
1.27->bool QFile::resize(const QString & fileName, qint64 sz) [static]

//sample://源文件的内容是hello.共5个字节.QFile file("1.txt");qDebug() << file.size();//截取文件的大小,只截取3个字节.所以最后源文件的内容只有:hel.如果重新设置的数字大于文件的内容,则以空字符填充.file.resize(3);

//返回文件或目录的绝对路径——一个符号链接(或Windows上的快捷方式)指向,或者如果对象不是一个符号链接,则返回一个空字符串。
这个名称可能不代表现有的文件;它只是一个字符串。如果symlink指向现有的文件,则存在()返回true.没用过…
1.28->QString QFile::symLinkTarget(const QString & fileName) [static]
1.29->QString QFile::symLinkTarget() const

2.signals
QFile类不像其他的QIODevice实现,比如QTcpSocket,它不会发出about toclose()、bytes写入()或readyRead()信号。这个实现细节意味着QFile不适合阅读和编写某些类型的文件,比如Unix平台上的设备文件.

3.不同平台的使用问题.
在linux/mac OS X和Windows上,文件权限的处理方式不同。在Linux上的一个不可写的目录中,不能创建文件。在Windows中,情况并非总是如此,例如,“我的文档”目录通常不是可写的,但是仍然可以在其中创建文件.(ps:Linux系统下的文件系统是权限分明的,分别为rwx,r为read,w为write,x为execute,对于user和groups和others的权限又是不同的.所以说Linux的权限非常的明确,不是你想创建文件就可以创的.)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。