0
点赞
收藏
分享

微信扫一扫

QT二进制读取和写入文件

天蓝Sea 2022-03-12 阅读 77
qtc++
QByteArray total_file;
    QFile file("C:\\Users\\star\\Desktop\\111.aedt");
    int flag=file.open(QIODevice::ReadOnly);
    QDataStream in(&file);
    in.setVersion(QDataStream::Qt_5_15);
    QFileInfo fileInfo("C:\\Users\\star\\Desktop\\111.aedt");
    int buffer_size=65535;
    char datRawArray[65535];
    std::cout<<"nomal"<<fileInfo.size()<<std::endl;
    int total_size=0;
    while(!in.atEnd()){
        in.readRawData(datRawArray, buffer_size);
        QByteArray block(datRawArray,buffer_size);
        total_file=total_file+block;
    }
    std::cout<<"read file finished,yotal size:"<<total_file.size()<<std::endl;
    QByteArray testa = total_file.toBase64();
    QByteArray neeFile = QByteArray::fromBase64(testa);
    QFile file2("C:\\Users\\star\\Desktop\\222.aedt");
    file2.open(QIODevice::ReadWrite);
    QDataStream out(&file2);
    out.setVersion(QDataStream::Qt_5_15);
    out.writeRawData(neeFile.data(),neeFile.size());//这种方式保存的数据为实际ba中的内容,不会有任何多余字节
    file2.close();
举报

相关推荐

0 条评论