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

}

原文地址:https://www.cnblogs.com/gd-luojialin/p/9215774.html

时间: 2024-11-10 13:21:09

22内存文件操作的相关文章

C# 文件操作【转】

本文也收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加.拷贝.删除.移动文件.创建目录.递归删除文件夹及文件.指定文件夹下面的所有内容copy到目标文件夹下面.指定文件夹下面的所有内容Detele.读取文本文件.获取文件列表.读取日志文件.写入日志文件.创建HTML 文件.CreateDirectory方法的使用.修改文件或文件夹名称等方法使用 C#追加文件 StreamWriter sw = File.AppendText(Server.MapPath(".")+&

4.关于QT中的QFile文件操作,QBuffer,Label上添加QPixmap,QByteArray和QString之间的区别,QTextStream和QDataStream的区别,QT内存映射(

 新建项目13IO 13IO.pro HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets network CONFIG += C++11 MyWidget.h #ifndef MYWIDGET_H #define MYWIDGET_H   #include <QWidget>   class MyWidget : public QWidget {     Q_OBJECT public:     expli

《Java核心技术卷二》笔记(二)文件操作和内存映射文件

文件操作 上一篇已经总结了流操作,其中也包括文件的读写.文件系统除了读写以为还有很多其他的操作,如复制.移动.删除.目录浏览.属性读写等.在Java7之前,一直使用File类用于文件的操作.Java7提供了Path,Paths,Files,FileSystem等类,使文件操作变得简单和全面.此外还有很多第三方库也提供了文件操作的便捷类如common.io中的FileUtils类,Ant api提供的FileSet等类. 1.File类的使用 Java7之前版本中,File类即代表了路径对象也封装

让你提前认识软件开发(22):shell脚本中的文件操作

第1部分 重新认识C语言 shell脚本中的文件操作 [文章摘要] 编写shell脚本时,经常会涉及到对文件的操作,比如从文件中读取一行数据.向文件追加一行数据等.完成文件读写操作的方法有很多,了解各种命令下文件操作的执行情况,有助于开发人员在不同使用场景下选择合适的命令. 本文以实际的shell脚本为例,介绍了对文件进行操作的不同方法,为相关开发工作提供了参考. [关键词] shell  文件操作  读写  效率 一.概述 在某些软件项目的需求文档中,要求程序一次性读或写的数据规模较大,可达1

Linux操作系统 内存管理、用户操作和文件操作

内存管理.用户操作和文件操作 预备知识: 1.Linux系统的内存分为物理内存和虚拟内存.物理内存是指安装在计算机当中的主存储器:虚拟内存是一段虚拟的逻辑上连续的储存空间,虚拟内存是由多个内存碎片组成,只有正在使用的虚拟内存被存放在内存上,对于暂时不使用的虚拟内存空间其实是储存在外存中.虚拟内存空间地址和实际的物理内存空间地址存在某种逻辑上的关系,如果虚拟内存空间地址的内容将被使用,通过逻辑关系可以计算出此部分内容对应的实际物理内存空间,然后将内容加载到内存中.虚拟内存在一定程度上独立于物理内存

初识函数及文件操作

1. 函数的基本作用 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发"更快更好更强..." 函数式编程最重要的是增强代码的重用性和可读性 2. 定义和使用 def 函数名(参数): ... 函数体 ... 返回值 函数的定义主要有如下要点: def:表示函数的关键字 函数名:函数的名称,日后根据函数名调用函数 函数体:函数中进行一系列的逻辑计算,如:发送邮件.计算出 [11,22,38,888,2]中的最大数等... 参数:

Java文件操作系列[2]——使用JXL操作Excel文件

由于java流无法实现对Excel文件的读写操作,因此在项目中经常利用第三方开源的组件来实现.支持Excel文件操作的第三方开源组件主要有Apache的POI和开源社区的JXL. 总体来说,二者的区别是:JXL较为轻量级,如果是对Excel文件的简单操作,建议使用JXL:POI的功能相当强大,但同时处理问题也相当的繁琐. 1.准备工作 [必需]下载JXL的jar包:jxl.jar [非必需]JXL API  (提取密码:zgqj) 2.一些必要的说明 主要是对Excel结构的说明: Excel后

python基础_集合、文件操作

集合 集合是一个无序的且数据不会重复.有去重.关系测试的作用 list = ["11","22","33","44","55"] list = set(list) print(list,type(list)) 结果为: {'33', '11', '22', '55', '44'} <class 'set'> 关系测试list1 = set(["11","22&quo

python学习之路-3 初始python数据类型以及文件操作

本篇所涉及的内容 set集合 函数 三元运算 ?文件操作 set集合 set是一个无序的且不重复的元素集合 1.创建set集合的方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 # 第一种方法 s = set() print(type(s))           # 输出 <class 'set'>                   # 第二种方法 s = {1, 2} print