Qt中文件的操作一般使用的是QFile类。QFile是一种用于读取和写入文本、二进制文件和资源的I/O设备。QFile可以单独使用,或者更方便地与QTextStream或QDataStream一起使用。可进行文件的读写,拷贝。删除等操作。
文件路径可以通过构造函数的参数和函数setFileName()设置文件路径。QFile要求文件分隔符为“/”,与操作系统无关。不支持使用其他分隔符(例如“\”)。也可以使用exists()检查文件是否存在,使用remove()删除文件。(QFileInfo和QDir提供了更高级的文件系统相关操作。)
该文件使用open()打开,使用close()关闭,并使用flush()刷新。
数据的读写一般需要使用QDataStream或QTextStream进行读取和写入。也可以调用QIODevice继承的函数read()、readLine()、readAll()和write()。QFile还继承了getChar()、putChar()和ungetChar(),它们一次处理一个字符,size()返回文件的大小。您可以使用pos()获取当前文件位置,也可以使用seek()移动到新文件位置。如果已经到达文件的末尾,atEnd()将返回true。
文件的拷贝和删除直接则调用QFile中的copy()和remove()函数实现。
QTextStream负责将存储在磁盘上的8位数据转换为16位Unicode QString。默认情况下,它假设使用用户系统的本地8位编码(例如,在大多数基于unix的操作系统上使用UTF-8;有关详细信息,请参阅QTextCodec::codecForLocale())。这可以使用QTextStream::setCodec()进行更改。
文件操作流程
1、创建QFile对象,并引入文件路径。
2、使用open()函数打开文件,并设置文件权限。
3、将文件和QTextStream流绑定。
4、使用QTextStream流的函数、<<、>>进行文件的读写操作。
5、使用close()函数关闭文件。
例如:
QString path = m_dir.path()+"ceshi.txt";
QFile file(path);
QDir dir;
QTextStream textsteam;
file.open(QIODevice::ReadWrite | QIODevice::Text);
textsteam.setDevice(&file);
QString str = "通过流写入文字到文件中";
textsteam<>str;
qDebug()< 以上代码是通过QTextStream流获取文件中的一行数据。当然QTextStream可以通过以下函数获取文本中的内容。
qDebug()<关于QFile和QTextStream中详细的使用参考QT官方文档。
1、创建QFile对象,并传入文件路径。
2、使用open()函数打开文件。
3、使用QFile父类中readLine和readAll函数获取相关的数据,使用write向文件中写入相关内容。
4、使用Close()函数关闭文件
QString path = m_dir.path()+"ceshi.txt";
QFile file(path);
QDir dir;
QTextStream textsteam;
file.open(QIODevice::ReadWrite | QIODevice::Text);
char* str = "君看今年树上花,不是去年枝上朵";
//向文件中写入内容
file.write(str);
//通过readLine获取文件中一行的内容
char* output = new char[1024];
file.readLine(output,1024);
//获取整个文件内容,返回值为字节数组,读取字符文字不建议使用。
QByteArray tr = file.readAll();
qDebug()<- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
-
相关阅读:
音乐伴奏提取?唱歌剪辑好用的音频人声分离软件!提取步骤很简单!
如何設置HTTP代理?
【胡锡进】大模型量化分析-汇川技术 300124.SZ
Python测试题12道(含答案)
RabbitMQ如何保证消息不丢失
SpringMVC入门
html静态商城网页制作 基于HTML+CSS+JavaScript在线服装商城店铺商城设计毕业论文源码
DC/DC开关电源学习笔记(十一)Boost升压电路原理
JS排序算法
go语言的一些常见踩坑问题
-
原文地址:https://blog.csdn.net/qq_43812868/article/details/133358179
-
最新文章
-
沪漂五周年了:我越来越迷茫了
Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
MySQL-Seconds_behind_master的精度误差
[MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
Agent OS :五种驯服不确定性的范式
PortSwigger SQL注入LAB11
数据库即时编译JIT
[Begin]AI Learn Data Day 0
深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU