首页 > 其他分享 >qt文件操作

qt文件操作

时间:2022-10-06 22:47:06浏览次数:55  
标签:文件 qt QFile 使用 操作 QIODevice 打开 open

二、文件操作

2.1、QFile

QFile 类提供了 一个用于读/写文件的接口,它可以用来读/写文本文件、二进制文件和 Qt 资源的 I/0 设备。

一般在构建 QFile 对象时便指定文件名,当然也可以使用 setFileName ()进行设置。可以使用 exists() 来检查文件是否存在使用 remove()来删除一个文件 。

一个文件可以使用 open() 打开,使用 close()关闭,使用 flush()刷新 ,文件的读写可以使用 read ()、 readLine ()、 readAll ()和 write (),可以使用自size()函数来获取文件的大小,使用 seek ()来定位到文件 的任意位置,使用 pos ()来获取当前的位置,使用 atEnd ()来判断是否到达了文件的末尾 。

还是可以用以下学过FILE,fstream这些来进行文件操作

2.2、打开并写入文件
文件操作流程 打开>写入/读取>关闭

访问一个设备以前,需要使用 open ()函数打开该设备,而且必须指定正确的打开模式,不同的打开模 式之间可以使用“|”符号同时使用。

打开设备后可以使用 write()或者 putChar()来进行写人,可以使用seek函数进行文件指针移动(如果 有),使用read ()、 readLine ()或者 readAll ()进行读取,最后使用 close()关闭设备。

    /*
     * ReadOnly = 0x0001,       //只读,文件不存在就报错
        WriteOnly = 0x0002,     //只写,文件不存在就创建新的
        ReadWrite = ReadOnly | WriteOnly,       //读写,文件不存在就报错
        Append = 0x0004,        //追加,文件不存在就创建新的,文件指针在末尾
        Truncate = 0x0008,      //只写,文件存在就清空里面的内容,重写,文件不存在就创建新的
        Text = 0x0010,          //以文本方式打开
    */



    QFile file("D:/test/1.txt");
    if (!file.open(QIODevice::WriteOnly | QIODevice::Text))//打开方式
    {
        qDebug() << file.errorString();
    }
    else
    {
        qDebug() << "打开成功!";
    }
    file.write("hello thank you!");  //可能会有字符集问题
    file.close();

2.3、读取里面所有内容
QFile file("D:/test/1.txt");
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) 
{
	qDebug() << file.errorString();
}
else
{
	qDebug() << "打开成功!";
}

//QString str= file.readAll();	//用qstring存一下
//qDebug()<<str;


while(!file.atEnd())
{
	QByteArray line=file.readLine();
	qDebug()<<line;
}
file.close();

2.4、其他操作
获取的文件大小:size()
更改文件的名字:rename("新名字")
删除文件:remove()
获取一行中的某个位子的字符:先用readLine()读完这行,然后通过 string的mid函数处理
mid(5,1)从第五个位置,获取1个字符
移动文件指针:seek(5)

2.5、QIOdevice类

QIODevice 类是 Qt 所有 I/O 设备的基础类 ,为QFIle等类提供一个抽象接口

继承图,QFile这些都是他的子类

标签:文件,qt,QFile,使用,操作,QIODevice,打开,open
From: https://www.cnblogs.com/Mr-black-7/p/16758716.html

相关文章

  • 读写wav格式文件
    读写wav格式文件注意:本文代码仅在MinGW-w64gcc/g++环境下编译测试通过,其余环境不保证。MinGW环境可以在以下链接下载:https://github.com/niXman/mingw-builds-binaries......
  • 2.3 遍历指定路径下的文件及子文件夹下的文件
    #importoslst=os.scandir()forfileinlst:print(file,type(file),file.name,file.path,file.is_dir())#运行输出<DirEntry'demo1.py'><class'nt.DirE......
  • 文件资源管理器卡死、无响应解决办法
    问题  外接移动硬盘断连了,导致出现许多的问题。其一是经常打开文件管理器的时候弹窗如下的错误。  其二是经常文件资源管理中卡死,并且在任务管理器中无法重启任务也......
  • 2.2 课堂案例_输出当前路径下所有文件及文件夹
    # listdir(path)返回指定目录下的文件和信息 ,os.listdir()。(注意:返回的是str类型)importosprint(os.listdir())#listdir(path)......
  • 2.1 os模块简介_路径操作
    #os模块简介  ##os模块     ###Python标准库      ###和操作系统有关的操作      ###创建、移动、复制文件和文件夹     ......
  • 配置文件分类
         ......
  • 分布式存储系统之Ceph集群存储池操作
    前文我们了解了ceph的存储池、PG、CRUSH、客户端IO的简要工作过程、Ceph客户端计算PG_ID的步骤的相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16733806.......
  • M文件打包成jar包详解
    摘要:MATLAB中封装了种类齐全、功能强大的函数和工具箱等,有时在Java工程中编写可能花费很多精力,为此可直接将MATLAB中编写好的功能模块打包成jar包,在Java中进行引用。本文......
  • C语言操作符
    1.在进行除法运算的时候,如果两个操作数都是整数,那么结果就是整数。要想得到的结果是浮点数,至少有一个操作数是浮点数,最后的结果也是定义为浮点类型。2.在进行取模运算的时候......
  • 从 HelloWorld 看 Java 字节码文件结构
    很多时候,我们都是从代码层面去学习如何编程,却很少去看看一个个Java代码背后到底是什么。今天就让我们从一个最简单的HelloWorld开始看一看Java的类文件结构。在开始......