Qt 文件逐字节的读取与写入的补充

来源:互联网 发布:淘宝广州跟杭州的衣服 编辑:程序博客网 时间:2024/05/17 01:18

一般来说 如果我们采用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;}


0 1
原创粉丝点击