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();

        }

  • 相关阅读:
    lua的多种实现方式(1-100的和)
    51单片机交通灯(定时器+38译码器+中断)
    51单片机定时器实现LED闪烁
    51单片机0号与1号外部中断实例
    51单片机:IO口扩展芯片用法(74HC165,74HC595)
    mybatis org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
    Intellij IDEA运行报Command line is too long解法
    Jmeter命令行运行实例讲解
    Windows10在当前目录快速打开cmd的方法
    Jmeter接口测试对json串中的值进行断言
  • 原文地址:https://www.cnblogs.com/gd-luojialin/p/9215774.html
Copyright © 2011-2022 走看看