WEB开发网
开发学院手机开发Symbian 开发 关于 Symbian 对文件的操作 阅读

关于 Symbian 对文件的操作

 2010-03-24 17:23:00 来源:WEB开发网   
核心提示:TParseBase中),文件操作当然包含文件读写咯,关于 Symbian 对文件的操作(2),在此也作一下整理,TFileTextLocation: f32file.hLink against: efsrv.lib这个类是我最喜欢用的,但是Windows平台下的UTF-8编码文件都有这三个字节),UTF-16的貌似不
TParseBase中)。

文件操作当然包含文件读写咯,在此也作一下整理。

TFileText

Location: f32file.h

Link against: efsrv.lib

这个类是我最喜欢用的,因为它够简洁够方便。

处理单行的文本文件读写(单行最大256个字符),文件编码必须是UTF-16 LE。

提供的函数也少得可怜:Read(), Seek(), Set(), TFileText(), Write() 其中还有一个是默认构造函数,真是可怜无比。但是很实用就是了,在做Console Exe的时候,用这个类来读写文件那是相当爽快。没有调研过控制台程序是否也有支持ini文件的API,但是自己用TFileText写一个读写ini文件的类也是很方便的事。

伪代码如下:

TFileText ft; // you can also alloc ft with new operator

ft.Set(…);

TBuf<256> line; // you may want to use HBufC or RBuf…

while(KErrEof != ft.Read(line))

{

// your operation to line

}

ft.Write(…); // auto insert your TDesC into the new line

CLineReader

Location: VERSIT.H

Link against: versit.lib

类如其名,这个类只支持单行读,不支持写。不过用起来也不算太麻烦,因为是通过流读取的,所以没有单行256个字符的限制。

据我测试,文件编码必须是UTF-8 without BOM(就是文件头不带EFBBBF三个字节,这三个字节对于UTF-8编码来说不是必需的,但是Windows平台下的UTF-8编码文件都有这三个字节),UTF-16的貌似不支持,下次作一个详尽的测试。

示例代码:

RFs fs;

User::LeaveIfError(fs.Connect());

RFileReadStream fileReadStream;

fileReadStream.Open(fs,KConfigFilePath,EFileStreamText);

CLineReader* lineReader = CLineReader::NewL(fileReadStream);

TInt err(KErrNone);

while(true)

{

lineReader->ReadLineL(0,err);

if(KErrEof == err)

{

break;

}

// do sth with lineReader->iBufPtr

}

delete lineReader;

fileReadStream.Close();

Tags:关于 Symbian 文件

编辑录入:coldstar [复制链接] [打 印]
赞助商链接