symbian 文件系统的存储和流应用

     流是一个抽象的概念,是物质从一处流向另一处的流动过程

     程序开发中流是指信息从外部输入设备(键盘鼠标)向计算机内部(内存)或内存想显示器 磁盘输出的过程.这个输入输出的过程叫做流.他降低了实现程序开发的难度,因为他屏蔽了底层的实现细节.

    Symbian OS  开发环境下用流读写作为较好的文件读写方式 提供了流读写的手段,分别叫做外化(Externalize)和内化(Internalize) 将数据写入到流中叫外化,把数据从流中读出叫内化.

    流的概念通过系统的俩个基类RReadStream和RWriteStream得以实现,而从俩个基本类派生出来的具体类支持存放特定介质中的流.例如:RFileWriteStream和RFileReadStream实现了存放在文件中的流,RDesWriteStream RDesReadStream实现了驻留内存的流其内存通过描述符来识别.

下面是主要流类型表
头文件                类名称                                    介绍

s32file.h            RFileWriteStream                   一个文件 构造需要RFile或者是文件名
                         RFileReadStream
s32mem.h         RDesWriteStream                   内存,由一个描述符识别
                         RDesReadStream
s32mem.h         RMemWriteStream                 内存,由一个指针和其长度识别
                         RMemReadStream
s32mem.h         RBufWriteStream                   内存由从 CBufBase继承的动态缓存管
                         RBufReadStream
s32std.h            RStoreWriteStream                后面详细介绍
                         RStoreReadStream
s32stor.h           RDictionaryReadStream         需要一个字典存储和一个UID
                         RDictionaryWriteStream
s32crypt.h         REncryptStream                  构造需要宿主流 安全算法和初始化串
                         RDecryptStream

********************************************************************

为了实现流功能 至少需要s32std.h头文件,为了使用文件流需要s32file.h 另外还需要在LIBRARY中添加estor.lib

存储和流字典;
    在一些数据量较大的应用程序中,有时需要处理各种不同的数据,比如企业中不同部门的数据,学校学生和教职工的数据等这时候需要很多流分别进行I/O操作 这是需要利用文件存储和流字典来操作:
        存储是流的集合,其功能就是组织不同的流对不同的数据来操作,数据最终被输入到文件中或者从文件中读取,因此存储和文件是密切相关的。

 

本文代码描述:
 在本文中先建立了一个实体类CMedal 里面有内化和外化的过程        然后定义了一个CMedalManager类来管理CMedal类 他里面维护了一个指针数组RPointerArray<CMedal> iMedalArray; 可以在他里面添加删除CMedal对象  在主类的TestStoreL()和TestRestoreL()函数用于写入和读取数据
 在TestStoreL()中实例化了俩个金牌对象 俩个银牌对象 俩个铜牌对象 并将他们放到了RPointerArray中 接着定义了一个直接文件存储对象用于存放数据 这下面的代码中使用了三个流写入和读取金银铜牌的数据使得程序十分清晰
       在上面的过程中使用了流字典 因为读取数据的时候必须获得写入该数据流的流id号 也就是要把读取和写入对接起来 这样的话写入数据的时候一定要讲流id保存在一个地方方便以后使用 在Symbian中提供了流字典统一管理流id 流字典也是流 他将所有的流保存起来 为每一个流id(每个流对应一个id)和流的Uid(流的Uid是用户定义的)之间建立映射 这样的话方便用户操作

 下面是自己测试的代码:(标注 这个代码来自 <<Symbian OS C++编程指南>> 代码在读取数据的时候第二条数据读取不到 现在还没有解决 )

 

Medal.类

Medal.h

 

Medal.cpp:

 

 

 

管理类MedalManager

MedalManager.h

 

MedalManager.cpp

测试主类:

FileStreamExample.h

FileStreamExample.cpp

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值