加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

22内存文件操作

发布时间:2020-12-14 03:23:43 所属栏目:大数据 来源:网络整理
导读:前面介绍了基本文件操作、数据流文件操作和文本文件操作。本次简单介绍内存文件操作。内存文件本质就是建立一块公共内存区域,可以往里读、写。 ? 下面我们使用一段代码来看看QBuffer的有关操作: QBuffer memFile();?????????????? //内存文件对象 //打开 ?

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

?

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

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

//打开

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

??? if(bIsOk==true)

??? {

??????? memFile.write("2222222222");

??????? 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("2222222222");

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

??? }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读