Qt 文件逐字节的读取与写入的补充
2016-05-21 12:58
405 查看
一般来说 如果我们采用readAll一次性读取所有字节,如果是小文件都还没问题,如果是大文件几十MB几百MB很有可能还卡死,或者几个GB,直接内存都不够了~。
我们需要 读取一个字节发送一个字节~~不用占用太多内存~
我们需要 读取一个字节发送一个字节~~不用占用太多内存~
#include "mainwindow.h" #include "ui_mainwindow.h" #include<QFile> #include<QIODevice> #include<QDebug> #include<QByteArray> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); QFile file1("E:/1.txt"); file1.open(QIODevice::ReadOnly); //=== QFile file2("E:/t/1.txt"); //|追加模式 file2.open(QIODevice::Append); //== qint64 length=0; char * buffer=new char[1]; int i=0; //|可以不用ByteArray 直接写入char *; //|需要注意的是char * 最好只是1,因为 如果最后一次读取只读取了一部分 那么后面的 还会是原来的数据~ QByteArray b; while((length=file1.read(buffer,1))!=0) { ++i; b=buffer; file2.write(b); qDebug()<<length<<"i:"<<i; } } MainWindow::~MainWindow() { delete ui; }
相关文章推荐
- 将 Qt 5.6 集成至 VS2015
- qt 编译的文件没有生效
- qt 窗口控件自动调整大小
- QT Demo
- Qt学习之始
- QT中QPF字库的制作与旋转字体的实现
- QT中文字体的显示方法
- QT接收SendMessage/PostMessage发出的消息
- Qt根据汉字生成位图,可连续调用,生成的位图不会有杂点
- centos系统下,Qt中使用openGL和cuda,.pro需要配置的库和头文件
- QT类之事件mousePressEvent以及mouseMoveEvent
- openCV2.4.9与QT5.5.1结合打开摄像头并显示采集到的图像的问题
- 移植QT5.4.0到ARM开发板
- qt的容器类
- VS2008集成QT4.7.2环境搭建
- Qt 使用Windows API 函数精确控制循环执行的周期时间
- Qt编译遇到/usr/bin/ld: cannot find -lGL问题的解决方案
- 项目与软件推荐之编辑器-QOwnNotes
- Qt 获取当前时间
- 如何在QT中显示中文字符