Qt读写文件
1、头文件
#include<QFile>
#include<QFileDialog>
#include<QDataStream>
2、写代码前工作
在ui界面拖入2个button按钮和1个textEdit,如下图所示,并分别添加button的槽函数
3、读文件
void MyWidget::on_readButton_clicked()
{
QString path = QFileDialog::getOpenFileName(this,"open","../"); // 添加文件地址
if(path.isEmpty() == false) // 判断地址是否不为空
{
QFile file(path); // 创建文件接口
bool success = file.open(QIODevice::ReadOnly); // 判断文件打开方式是否设定成功
if(success ==true)
{
QByteArray buf;
while(file.atEnd() == false) // 判断是否读取至最后一行
{
buf += file.readLine(); // 读取内容
}
ui->textEdit->setText(buf); // 将读取到的内容放置textEdit中
}
file.close(); // 关闭文件接口
}
}
4、写文件
void MyWidget::on_writeButton_clicked()
{
QString path = QFileDialog::getSaveFileName(this,"save","../"); // 默认打开地址
if(path.isEmpty() == false) // 判断地址是否不为空
{
QFile file(path); //打开文件接口
bool success = file.open(QIODevice::WriteOnly); // 判断文件打开方式是否设定成功
if(success == true)
{
QString buf = ui->textEdit->toPlainText(); // 将textEdit中文本存入buf中
file.write(buf.toUtf8()); // 写入内容
}
file.close(); // 关闭文件接口
}
}
5、二进制文件写入
void MyWidget::writeData()
{
QFile file("../binary.txt"); // 打开文件接口并设定存储方式为txt
bool success = file.open(QIODevice::WriteOnly); // 判断文件打开方式是否设定成功
if(success == true)
{
QDataStream stream(&file); // 创建文件流
stream<<QString("看多了就烦了 !")<<; //写入
}
file.close(); //关闭文件接口
}
6、二进制文件读取
void MyWidget::readData()
{
QFile file("../binary.txt"); // 打开文件接口并设定打开路径
bool success = file.open(QIODevice::ReadOnly); // 判断文件打开方式是否设定成功
if(success == true)
{
QDataStream stream(&file); // 创建文件流
QString str;
int num;
stream>>str>>num; // 读取
qDebug()<<str.toUtf8().data()<<num;
}
file.close(); // 关闭文件接口
}
Qt读写文件的更多相关文章
- Qt的Model/View Framework解析(数据是从真正的“肉(raw)”里取得,Model提供肉,所以读写文件、操作数据库、网络通讯等一系列与数据打交道的工作就在model中做了)
最近在看Qt的Model/View Framework,在网上搜了搜,好像中文的除了几篇翻译没有什么有价值的文章.E文的除了Qt的官方介绍,其它文章也很少.看到一个老外在blog中写道Model/Vi ...
- 【QT】文件读写操作
读取输出: QFile file("D:/Englishpath/QTprojects/1.dat"); if(!file.open(QIODevice::ReadOnly)) { ...
- QT 读写sqllite数据库
QT 读写sqllite数据库 分类: 技术资料2014-04-10 10:39 84人阅读 评论(0) 收藏 举报 #include <QtGui/QApplication> #incl ...
- Qt之文件操作 QFile
原地址:http://blog.csdn.net/liuhongwei123888/article/details/6084761 今天学习QT的文件操作 1.QIODevice直接继承自QObjec ...
- 界面编程之QT的文件操作20180729
/*******************************************************************************************/ 一.QT文件 ...
- Hyper-V无法文件拖拽解决方案~~~这次用一个取巧的方法架设一个FTP来访问某个磁盘,并方便的读写文件
异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 服务器相关的知识点:http://www.cnblogs.com/dunitia ...
- 计算机程序的思维逻辑 (60) - 随机读写文件及其应用 - 实现一个简单的KV数据库
57节介绍了字节流, 58节介绍了字符流,它们都是以流的方式读写文件,流的方式有几个限制: 要么读,要么写,不能同时读和写 不能随机读写,只能从头读到尾,且不能重复读,虽然通过缓冲可以实现部分重读,但 ...
- Python读写文件
Python读写文件1.open使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('t ...
- php中并发读写文件冲突的解决方案
在这里提供4种高并发读写文件的方案,各有优点,可以根据自己的情况解决php并发读写文件冲突的问题. 对于日IP不高或者说并发数不是很大的应用,一般不用考虑这些!用一般的文件操作方法完全没有问题.但如果 ...
随机推荐
- Java并发编程(一):线程基础知识以及synchronized关键字
1.线程与多线程的概念:在一个程序中,能够独立运行的程序片段叫作“线程”(Thread).多线程(multithreading)是指从软件或者硬件上实现多个线程并发执行的技术. 2.多线程的意义:多线 ...
- 八使用Shell函数
在Shell脚本中,将一些需要重复使用的操作,定义为公共的语句块,即可称为函数 使用函数的好处? 使脚本代码更简洁,增强易读性 提高Shell脚本的执行效率 函数定义方法 基本格式1 function ...
- Netty源码分析之ChannelPipeline—入站事件的传播
之前的文章中我们说过ChannelPipeline作为Netty中的数据管道,负责传递Channel中消息的事件传播,事件的传播分为入站和出站两个方向,分别通知ChannelInboundHandle ...
- objectarx 统计面积
除了最后一个输出面积到excel没做,其他都是做了的.只支持AcDbPolyline和AcDbCircle.这是我模仿网上的动态图做的,主要是为了练习.下面我把自己的一些心得分享出来.使用到的一些帮助 ...
- DaSiamRPN学习
9月14日,2018年视觉目标跟踪挑战赛(Visual-Object-Tracking Challenge 2018)的结果在ECCV Workshop上揭晓.VOT2018共设三项任务:Baseli ...
- StackExchange.Redis 之 hash 类型示例
StackExchange.Redis 的组件封装示例网上有很多,自行百度搜索即可. 这里只演示如何使用Hash类型操作数据: // 在 hash 中存入或修改一个值 并设置order_hashkey ...
- 为了控制Bean的加载我使出了这些杀手锏
故事一: 绝代有佳人,幽居在空谷 美女同学小张,在工作中遇到了烦心事.心情那是破凉破凉的,无法言喻. 故事背景是最近由于需求变动,小张在项目中加入了MQ的集成,刚开始还没什么问题,后面慢慢问题的显露出 ...
- 《自拍教程5》Python自动化测试学习思路
前提:熟悉测试业务及流程 任何Python自动化测试的前提,都是必须先熟悉实际测试业务. 任何脱离实际测试业务的自动化都是噱头且无实际意义! 测试的基本流程基本是: 测试需求分析,测试用例设计与评审, ...
- 你还用拼音为变量命名?新人OIer别傻了,教你写出优质代码
本篇文章适用语言:python,c++,Java.(其实我就是随便bb) 我们在编辑代码的时候,不免拿其他人的代码进行学习,或者将自己的代码拿给别人修改.这个时候,如何让别人快速读懂你的代码,是提升效 ...
- 数据算法 --hadoop/spark数据处理技巧 --(7.共同好友 8. 使用MR实现推荐引擎)
七,共同好友. 在所有用户对中找出“共同好友”. eg: a b,c,d,g b a,c,d,e map()-> <a,b>,<b,c,d,g> ;< ...