zoukankan      html  css  js  c++  java
  • 22内存文件操作

    前面介绍了基本文件操作、数据流文件操作和文本文件操作。本次简单介绍内存文件操作。内存文件本质就是建立一块公共内存区域,可以往里读、写。

    下面我们使用一段代码来看看QBuffer的有关操作:

    QBuffer memFile();               //内存文件对象

    //打开

        bool bIsOk=memFile.open(QIODevice::WriteOnly);

        if(bIsOk==true)

        {

            memFile.write("1111111111");

            memFile.write("2222222222");

        }

    memFile.close();

    //结果打印

    qDebug()<<memFile.buffer();

    QBuffer::QBuffer(QByteArray * byteArray, QObject * parent = 0)

    也可以向内存区域再存放一个字节数组

        QByteArray arr;

        QBuffer memFile(&arr);

        bool bIsOk=memFile.open(QIODevice::WriteOnly);

        if(bIsOk==true)

        {

            memFile.write("1111111111");

            memFile.write("2222222222");

        }

        memFile.close();

    qDebug()<<arr;


    内存文件也有基本文件的操作

    bool QBuffer::atEnd() const [virtual]

    qint64 QBuffer::pos() const [virtual]

    bool QBuffer::seek(qint64 pos) [virtual]

    void QBuffer::setData(const char * data, int size)

    qint64 QBuffer::size() const [virtual]

    qint64 QBuffer::writeData(const char * data, qint64 len) [virtual protected]

    qint64 QBuffer::readData(char * data, qint64 len) [virtual protected]

    void QBuffer::setBuffer(QByteArray * byteArray)

        QByteArray byteArray("abc");

        QBuffer buffer;

        buffer.setBuffer(&byteArray);

        buffer.open(QIODevice::WriteOnly);

        buffer.seek(3);

        buffer.write("def", 3);

        buffer.close();

    // byteArray == "abcdef"

    QdataStream与Qbuffer的使用:

    全局内存区

    QBuffer  memFile;

    写操作

         {

             //打开文件,只写方式

    QDataStream in;

          in.setDevice(&memFile);

    //等价于上面 QDataStream in(&memFile);

             bool bIsOK=memFile.open(QIODevice::WriteOnly);  

      

             if(bIsOK==true)

             {

                 QString strBuf="初学Qt";

                 in<<strBuf<<250;

             }

            memFile.close();

         }

    读操作

    {

            //打开文件,只读方式

            QDataStream out(&memFile);

            bool bIsOk=memFile.open(QIODevice::ReadOnly);      

            if(bIsOk==true)

            {

                QString str;

                int a;

                out>>str>>a;

                qDebug()<<str<<a;

            }

            memFile.close();

        }

  • 相关阅读:
    vue双向数据绑定原理
    vue-router原理
    CSS选择器优化
    静态资源的渲染阻塞
    什么是Base64?Base64的原理是什么?
    OAuth的解释
    AMD与CMD的区别
    AMD的实现
    组件通信的几种方式
    关于istream_iterator<int>(cin)和istream_iterator<int>()的一点分析
  • 原文地址:https://www.cnblogs.com/gd-luojialin/p/9215774.html
Copyright © 2011-2022 走看看