直接上代码:
mywidget.cpp
#include "mywidget.h"
#include "ui_mywidget.h"
#include<QDebug>
#include<QBuffer>//内存文件
#include<QDataStream>
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::MyWidget)
{
ui->setupUi(this);
#if 0
//法1
QBuffer memFile;//创建内存文件
bool isOK=memFile.open(QIODevice::WriteOnly);
if(isOK)
{
memFile.write("111111");
memFile.write("222222");
memFile.close();
qDebug()<<memFile.buffer().data();
}
#endif
#if 0
//法2
QByteArray array;
QBuffer memFile(&array);//创建内存文件
bool isOK=memFile.open(QIODevice::WriteOnly);
if(isOK)
{
memFile.write("111111");
memFile.write("222222");
memFile.close();
qDebug()<<array.data();//qDebug()<<array;//其实Qt的QString和QByteArray用法都和C++的string类相似
}
#endif
//配合QDataStream使用
QBuffer memFile;//创建内存文件
bool isOK=memFile.open(QIODevice::WriteOnly);
if(isOK)
{
QDataStream in_stream(&memFile);
in_stream<<QString("测试")<<666;
memFile.close();
}
isOK=memFile.open(QIODevice::ReadOnly);
if(isOK)
{
QDataStream out_stream(&memFile);
QString str;
int a;
out_stream>>str>>a;
qDebug()<<str.toUtf8().data()<<a;
memFile.close();
}
}
MyWidget::~MyWidget()
{
delete ui;
}