Symbian 文件读写及读写流的方法
2010-03-18 20:53:00 来源:WEB开发网据我测试,文件编码必须是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();
fs.Close();
很方便吧。
RFile
Location: f32file.h
Link against: efsrv.lib
创建或者打开一个文件,可以对文件进行所有的操作,读啊写啊,改名改属性等等。
从Read()、Write()的所有重载版本看,参数都是TDesC8/TDes8 的,看来应该是对UTF-8 without BOM编码的文件适用。另外Read()、Write()都提供了同步、异步两种方式,可以按需要选用。
RFileReadStream/RFileWriteStream
Location: S32FILE.H
Link against: estor.lib
从RReadStream/RWriteStream派生出来的文件流。
示例代码:
RFileWriteStream writer;
writer.PushL(); //推上清洁栈
User::LeaveIfError(writer.Replace(fileSession, KFileName, EFileWrite)); //将流与文件绑定
writer << aTxt; //将aTxt的内容写入流
writer.CommitL(); //提交,相当于Flush
writer.Pop();
writer.Close();
更多精彩
赞助商链接