QT中操作Txt文件(Qt中QString与QByteArray互相转化方法)
Qt如何把QString写入txt文件中
1 示范代码
由于write不能把QString直接写入文件中,因此有两种方法来处理:
1 使用QTextStream类(中英文都可以存)
//读入文件
QFile file;
file.setFileName("C:/Users/Admin/Desktop/data2/1.txt");
QByteArray data;
if(file.open(QIODevice::ReadOnly)){
data = file.readAll();
file.close();
}
//转换为16进制的QString(不需要)
QString res ="";
QString temp = data.toHex().toUpper();
for(int i = 0;i < temp.size(); i += 2){
res += "0x" + temp.mid(i, 2) + ",";
}
//写入文件【重点】
file.setFileName("C:/Users/Admin/Desktop/data2/3.txt");
if(file.open(QIODevice::WriteOnly |QIODevice::Text)){
QTextStream stream(&file);
stream<<res<<"\n";
file.close();
}
2 把QString转为QByteArray
如果是英文选择下面的方法(toLatin1()),如果输入中文则会出现类似于????????????????乱码的情况:
//写入文件
file.setFileName("C:/Users/Admin/Desktop/data2/4.txt");
if(file.open(QIODevice::WriteOnly )){
QByteArray res2 = res.toLatin1();//toLatin1()转为QByteArray
file.write(res2);
file.close();
}
- 如果是中文使用(toUtf8());
file.setFileName("C:/Users/Admin/Desktop/data2/5.txt");
if(file.open(QIODevice::WriteOnly )){
QByteArray res2 = res.toUtf8();//toLatin1()转为QByteArray
file.write(res2);
file.close();
}
- 或者是转为string,然后再把string转为char*:
file.setFileName("C:/Users/Admin/Desktop/data2/6.txt");
if(file.open(QIODevice::WriteOnly )){
std::string res2 = res.toStdString();//string
const char* res3 = res2.c_str();//char*
file.write(res3);
file.close();
}
/*************************************
Qt中QString与QByteArray互相转化方法
// QString转QByteArray方法
//Qt5.9.6
QString str("Hello World");
QByteArray bytes = str.toUtf8(); // QString转QByteArray方法1
QString str("Hello World");
QByteArray bytes = str.toLatin1(); // QString转QByteArray方法2
//QByteArray转QString方法
//Qt5.9.6
QByteArray bytes("Hello World");
QString str = bytes; // QByteArray转QString方法1
QByteArray bytes("Hello World");
QString str;
str.prepend(bytes); // QByteArray转QString方法2
qDebug() << string;
相关文章
- Qt生成ui文件对应的.h和.cpp文件
- Qt选择文件对话框-中文路径-转std::string
- QT中Json的使用方法(类和json字符串相互转换的方法)
- Qt-调用dll动态链接库
- Qt--在.pro文件中添加链接库的写法
- QT之TCP通信
- qt中判断对象是否为空的方式
- 【QT】Qt::UserRole的作用
- 【QT】Qt 给已经开发好的程序快速封装成动态库
- 【QT】详解 *.pro、*.pri、*.prf、*.prl文件
- 【QT】Qt 使用MSVC2017找不到编译器的解决办法
- 基于 QT(C++) 开发的贪吃蛇游戏【100010582】
- 基于QT(C++)+CSV文件存储开发(WinForm)图书管理系统【100010008】
- Qt音视频开发20-vlc内核动态保存录像文件(不需要重新编译源码)
- Qt音视频开发14-音视频文件保存基类的设计
- Qt编写物联网管理平台(支持win/linux/mac/嵌入式linux/modbus等)
- Qt编写物联网管理平台36-通信协议
- Qt数据库应用20-csv文件转xls
- Qt编写地图综合应用41-在线轮廓图
- Qt音视频开发7-ffmpeg音频播放
- Qt编写地图综合应用2-迁徙图
- Qt编写安防视频监控系统21-摄像机管理
- Qt编写自定义控件35-GIF录屏控件
- Qt编写安防视频监控系统3-通道交换
- Qt 连接MySQL数据库(很多相关文章)
- Qt之解析XML元素(QXmlStreamReader)
- Qt之字体文件(TTF)
- Qt之图形(组合)
- Qt之格栅布局(QGridLayout)
- 【pyqt5学习】——bug修复,利用qt资源库qrc文件进行背景图像设置,不显示图像
- QT中文乱码与国际化支持
- QT源码之Qt信号槽机制与事件机制的联系