网站首页 > 编程文章 正文
每一种编程语言都会对文件进行操作,有读有写,Qt也提供了对文件的读写操作,提供了下、两种形式的纯文本文件操作方式:
- 用 QFile 类的 IODevice 读写功能直接进行读写
- 利用 QFile 和 QTextStream 结合起来,用流(Stream)的方法进行文件读写
下面对两种方式以代码的形式给大家说说怎么用:
QFile读写文本文件
//读取纯文本文件内容
bool readFile()
{
QString aFileName= "D:\test.txt";
QFile aFile(aFileName);
if (!aFile.exists()) //文件不存在
return false;
if (!aFile.open(QIODevice::ReadOnly | QIODevice::Text))
return false;
//str就是文件内容
QString str = aFile.readAll();
aFile.close();
return true;
}
//把文件内容保存到文件中
bool saveFile()
{
QString aFileName= “D:\test.txt";
QFile aFile(aFileName);
if (!aFile.open(QIODevice::WriteOnly | QIODevice::Text)))
return false;
QString str="abc";//整个内容作为字符串
QByteArray strBytes=str.toUtf8();//转换为字节数组
//QByteArray strBytes=str.toLocal8Bit();
aFile.write(strBytes,strBytes.length()); //写入文件
aFile.close();
return true;
}
QFile::open() 函数打开文件时需要传递 QIODevice::OpenModeFlag 枚举类型的参数,决定文件以什么方式打开,QIODevice::OpenModeFlag 类型的主要取值如下:
- QIODevice::ReadOnly:以只读方式打开文件,用于载入文件。
- QIODevice::WriteOnly:以只写方式打开文件,用于保存文件。
- QIODevice::ReadWrite:以读写方式打开。
- QIODevice::Append:以添加模式打开,新写入文件的数据添加到文件尾部。
- QIODevice::Truncate:以截取方式打开文件,文件原有的内容全部被删除。
- QIODevice::Text:以文本方式打开文件,读取时“\n”被自动翻译为换行符,写入时字符串结束符会自动翻译为系统平台的编码,如 Windows 平台下是“\r\n”。
QFile和QTextStream结合读写文本文件
QTextStream 与 IO 读写设备结合,为数据读写提供了一些方便的方法的类,QTextStream 可以与 QFile、QTemporaryFile、QBuffer、QTcpSocket 和 QUdpSocket 等 IO 设备类结合使用。
//文本读取
bool openFileByStream(const QString &aFileName)
{
//用 QTextStream打开文本文件
QFile aFile(aFileName);
if (!aFile.exists()) //文件不存在
return false;
if (!aFile.open(QIODevice::ReadOnly | QIODevice::Text))
return false;
QTextStream aStream(&aFile); //用文本流读取文件
//str就是读取到的文件内容
QString str = aStream.readAll());
aFile.close();//关闭文件
return true;
}
//写入文件中
bool saveFileByStream(const QString &aFileName)
{
//用QTextStream保存文本文件
QFile aFile(aFileName);
if (!aFile.open(QIODevice::WriteOnly | QIODevice::Text))
return false;
QTextStream aStream(&aFile); //用文本流读取文件
QString str="abc"; //转换为字符串
aStream<<str; //写入文本流
aFile.close();//关闭文件
return true;
}
这就是Qt文件操作的基本过程,今天你学会了吗?
猜你喜欢
- 2024-10-14 「Qt入门第31篇」 网络(一)Qt网络编程简介
- 2024-10-14 qt 做手机android的串口通讯 qt下串口通信
- 2024-10-14 Qt 读写txt文本文件(qt读入文件)
- 2024-10-14 Qt 信号槽连接不成功问题原因汇总
- 2024-10-14 QML 性能优化建议(一)(qml例程)
- 2024-10-14 C++ QT中文件的读写操作(UI界面)(qt怎么读取文件内容)
- 2024-10-14 Qt 中的智能指针(qt 函数指针)
- 2024-10-14 Qt如何读取和写入配置文件的数据(qt 读写配置文件)
- 2024-10-14 Qt pro文件中的常用宏说明(qt pro 自定义宏)
- 2024-10-14 Qt应用程序主窗口:拖放操作与打印文档
你 发表评论:
欢迎- 06-24一个老爸画了超级有爱的365幅画 | 父亲节献礼
- 06-24产品小白看魏则西事件——用产品思维审视百度推广
- 06-24某教程学习笔记(一):13、脚本木马原理
- 06-24十大常见web漏洞——命令执行漏洞
- 06-24初涉内网,提权那些事(内网渗透提权)
- 06-24黑客命令第16集:47种最常见的**网站方法2/2
- 06-24铭说 | 一句话木马的多种变形方式
- 06-24Java隐藏的10倍效率技巧!90%程序员不知道的魔法方法(附代码)
- 最近发表
- 标签列表
-
- spire.doc (70)
- instanceclient (62)
- solidworks (78)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)