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读写文件的更多相关文章

  1. Qt的Model/View Framework解析(数据是从真正的“肉(raw)”里取得,Model提供肉,所以读写文件、操作数据库、网络通讯等一系列与数据打交道的工作就在model中做了)

    最近在看Qt的Model/View Framework,在网上搜了搜,好像中文的除了几篇翻译没有什么有价值的文章.E文的除了Qt的官方介绍,其它文章也很少.看到一个老外在blog中写道Model/Vi ...

  2. 【QT】文件读写操作

    读取输出: QFile file("D:/Englishpath/QTprojects/1.dat"); if(!file.open(QIODevice::ReadOnly)) { ...

  3. QT 读写sqllite数据库

    QT 读写sqllite数据库 分类: 技术资料2014-04-10 10:39 84人阅读 评论(0) 收藏 举报 #include <QtGui/QApplication> #incl ...

  4. Qt之文件操作 QFile

    原地址:http://blog.csdn.net/liuhongwei123888/article/details/6084761 今天学习QT的文件操作 1.QIODevice直接继承自QObjec ...

  5. 界面编程之QT的文件操作20180729

    /*******************************************************************************************/ 一.QT文件 ...

  6. Hyper-V无法文件拖拽解决方案~~~这次用一个取巧的方法架设一个FTP来访问某个磁盘,并方便的读写文件

    异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983.html 服务器相关的知识点:http://www.cnblogs.com/dunitia ...

  7. 计算机程序的思维逻辑 (60) - 随机读写文件及其应用 - 实现一个简单的KV数据库

    57节介绍了字节流, 58节介绍了字符流,它们都是以流的方式读写文件,流的方式有几个限制: 要么读,要么写,不能同时读和写 不能随机读写,只能从头读到尾,且不能重复读,虽然通过缓冲可以实现部分重读,但 ...

  8. Python读写文件

    Python读写文件1.open使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('t ...

  9. php中并发读写文件冲突的解决方案

    在这里提供4种高并发读写文件的方案,各有优点,可以根据自己的情况解决php并发读写文件冲突的问题. 对于日IP不高或者说并发数不是很大的应用,一般不用考虑这些!用一般的文件操作方法完全没有问题.但如果 ...

随机推荐

  1. ROS机器人之话题(一)

     将消息发布到话题上 首先建立一个basic包(名称自己定)其命令为: 1.创建功能包,应用catkin_create_pkg命令     cd  ~/catkin_ws/src #切换到代码空间,也 ...

  2. illegal use of this type as an expression

    学习MCI时看别人样例手敲代码出现的一个很经典的错误. 在C语言中定义的变量没有放在函数的开头. #include <string.h> #include <windows.h> ...

  3. 大牛给的ACM进阶建议

    转:https://blog.csdn.net/mmy1996/article/details/56011084 来自知乎 在他后面的回答中发现 不用IDE ,修炼内功挺好的,不过他和我的以前的那种 ...

  4. 新的起航从这里开始 Encantado!

    大家好,我是一名DBA之前也在其它地方写过blog,但是可惜目前在greatwall之内都不能访问了. 如果有小伙伴可以在墙外访问的话 可以尝试着看看这个地址 https://liuleiit.wix ...

  5. 技术|Android安装包优化

    版权声明 1.本文版权归原作者所有,转载需注明作者信息及原文出处. 2.本文作者:赵裕(vimerzhao),永久链接:https://github.com/vimerzhao/vimerzhao.g ...

  6. angularJS 传参的四种方法 【修改】

    1. 基于ui-router的页面跳转传参(1) 在AngularJS的app.js中用ui-router定义路由,比如现在有两个页面,一个页面(producers.html)放置了多个produce ...

  7. DOCKER 学习笔记9 Kubernetes (K8s) 弹性伸缩容器 下

    前言 从上一篇看来,我们已经对于Kubernetes ,通过minikube 建立集群,而后使用kubectl 进行交互,对Deployment 部署以及服务的暴露等.这节,将学习弹性的将服务部署到多 ...

  8. javascript 对象api

    // Object 构造函数的属性: Object.prototype//可以为所有 Object 类型的对象添加属性 class A extends B{ constructor(){ super( ...

  9. 杭电-------2041超级楼梯(c语言写)

    /* 当未走的楼梯大于1时,可以选择走一步或者走两步,每次所做的选择相似, 符合分治法的特性,因此选择分治法,又测试用例有多组,为了避免多组 用例的重复计算,可用一个数组将已经知道的剩下的楼梯可以走的 ...

  10. centos7上安装docker社区版

    container(容器) docker(集装箱) 容器的优点 1. 启动速度快 2. 节省资源 3. 兼容性高 保证机器正常上网 #ping www.baidu.com CPU需要支持虚拟化 # g ...