最近看别人写的代码用到了流操作,之前看过Symbian里的Stream和Store的介绍,但是一直没有用,所以久了也就忘记了,今天重新看了一下书,对Symbian里的File, Stream, Store有了一个比较清晰的认识,现在总结一下,免得又忘记了!
Symbian里的File就不做介绍了,主要介绍一下Stream和Store
Stream
两个基本的Stream
RReadStream和RWriteStream
Symbian里的stream都是相对与被操作的对象而言的,RReadStream用于将一个对象读入到流中,在读入流之前需要打开或创建一个具体的流,比如RFileReadStream,RStoreReadStream,RMsvReadStream等,打开或创建一个流是为了讲其与文件关联起来。从功能上来讲,对流的操作和对文件的操作其实是一样的,引入流是为了提高系统的效率,因为流提供了缓冲机制,只有当缓冲满了或者执行了commit操作以后,流才将其里面的内容写入文件,从而减少了与文件系统的交互。
Store
store是stream的集合,用于存储多个流对象。
下面是store的类层次结构
class CPersistentStore : public CStreamStore;
class CBufStore : public CStreamStore;
class CFileStore : public CPersistentStore;
class CEmbeddedStore: public CPersistentStore;
class CPermanentFileStore : public CFileStroe;
class CDirectFileStore : public CFileStore;
每一个具体的Store的作用可以查询SDK
在使用每一个store之前也需要将其与与一个文件相关联,然后通过CStreamDictionary流来获取store里的每个流的ID,前提条件是要知道每一个流的TUid号!