QFile接口详解

QFile接口详解1、QFile::QFile()构造一个没有名字的QFile对象2、QFile::QFile(constQString&name)构造一个以name为文件名的QFile对象。注:也可以QFile::QFile(),然后调用setName()方法来实现类似动作。3、bootQFile::atEnd()const[虚函数]如果已经到达文件末尾则返回TRUE,否则返回…

大家好,又见面了,我是你们的朋友全栈君。

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。

 

转:http://blog.csdn.net/liuysheng/article/details/6721059

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/133142.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 解决pycharm新建项目后按钮灰色问题

    解决pycharm新建项目后按钮灰色问题解决pycharm新建项目后按钮灰色问题出现过多次该问题了,在此记录一下同样适用于导入别人的新项目后无法运行问题原因一:  pycharm没有设置系统解析器解决方法一:  打开pycharm->File->Settings->ProjectInterpreter->设置python路径(系统python)原因二:  没有创…

  • 什么是TCC?_tc部门是什么意思

    什么是TCC?_tc部门是什么意思假设现在有一个电商系统,里面有一个支付订单的场景,那对一个订单支付之后,我们需要做下面的步骤 更改订单的状态为“已支付” 扣减商品库存 给会员增加积分 创建销售出库单通知仓库发货 业务场景有了,现在要更进一步,实现一个TCC分布式事务的效果,也就是说,订单服务-修改订单状态,库存服务-扣减库存,积分服务-增加积分,仓储服务-创建销售出库单,上述这几个步骤,要么一起成功,要么一起失败,必须是一个整体性的事务举个例子,现在订单的状态都修

  • Java旅游管理系统

    Java旅游管理系统基于Java的SSM旅游平台基于Java的SSM旅游平台功能介绍系统部分快照基于Java的SSM旅游平台功能介绍(1)用户注册,登陆,验证,退出等基本功能;(2)景点介绍,天气预报,门票预订,酒店预订;(3)旅游攻略,旅游咨询,驴友风采;(4)景点地图;(5)驴友社区;(8)个人旅途分享;系统部分快照后台管理界面图片省略…

  • MP4格式详解_mp4格式有哪些

    MP4格式详解_mp4格式有哪些一、mp4概述MP4文件中的所有数据都装在box(QuickTime中为atom)中,也就是说MP4文件由若干个box组成,每个box有类型和长度,可以将box理解为一个数据对象块。box中可以包含另一个box,这种box称为containerbox。一个MP4文件首先会有且只有一个“ftyp”类型的box,作为MP4格式的标志并包含关于文件的一些信息;之后会有且只有一个“moov”类型的box(MovieBox),它是一种containerbox,子box包含了媒体的metadata信息;MP4文

    2022年10月16日
  • Linux安装PS_linux 安装命令

    Linux安装PS_linux 安装命令导读pstack命令可显示每个进程的栈跟踪。pstack命令必须由相应进程的属主或root运行。可以使用pstack来确定进程挂起的位置。此命令允许使用的唯一选项是要检查的进程的PID。实例pstree以树结构显示进程pstree-pwork|grepadsshd(22669)—bash(22670)—ad_preprocess(4551)-+-{ad_preproc…

  • cubieboard mysql_Cubieboard开发笔记[通俗易懂]

    cubieboard mysql_Cubieboard开发笔记[通俗易懂]原创作品,转载请注明出处,谢谢!写在前面:亲测可用的搭建流程,但是此流程是针对32位系统的,如果您是64位系统,请勿采用本博文的方式。我搭这个环境居然折腾了一周时间,本来用32位系统好好的,但是官网非要推荐我用64位系统。因为最终打包必须在64位环境下实现。于是乎我一直在不断换系统版本,希望能按照对方工程师所描述的状况来实现,但是我将Error发给他时,他也无计可施。因而还是回到最熟悉的方式进行编…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号