一、文件的写
//创建文件
TFileName fnDataFile;
fnDataFile.Copy(_L("c:\\FileExam.dat"));
RFs& fs = CCoeEnv::Static()->FsSession();
RFile file;
//file.Create(fs,fnDataFile,EFileWrite);//创建 的文必须不存在,才能创建成功,如果创建的文件存在了,就会失败
file.Replace(fs, fnDataFile, EFileWrite);//如果创建的文件已经存在,会把文件的长度置成0,然后用指定模式打开文件,如果文件不存在,就创建一个,然后以指定的模式打开文件
//写数据到文件中
TInt nID;
TBuf<20> bufName;
TInt nNameLen;
nID = 10;
bufName.Append(_L("John"));
nNameLen = bufName.Length();
TPtrC8 ptrID((TUint8*) (&nID), sizeof(TInt));
TPtrC8 ptrName((TUint8*) bufName.Ptr(), bufName.Size());
TPtrC8 ptrNameLen((TUint8*) (&nNameLen), sizeof(TInt));
file.Write(ptrID);
file.Write(ptrNameLen);
file.Write(ptrName);
// HBufC8* pName=HBufC8::NewL(bufName.Length());
// TPtr8 ptr8Name=pName->Des();
// ptr8Name.Copy(bufName);
// file.Write(ptr8Name);
file.Close();
二、对应的文件的写
//打开文件
TFileName fnDataFile;
fnDataFile.Copy(_L("c:\\FileExam.dat"));
RFs& fs = CCoeEnv::Static()->FsSession();
RFile file;
file.Open(fs, fnDataFile, EFileRead | EFileWrite);
//从文件中读数据
TInt nID;
TBuf<20> bufName;
TInt nNameLen;
TPtr8 ptrID((TUint8*) (&nID), sizeof(TInt));
TPtr8 ptrName((TUint8*) bufName.Ptr(), 20 * 2);
TPtr8 ptrNameLen((TUint8*) (&nNameLen), sizeof(TInt));
file.Read(ptrID);
file.Read(ptrNameLen);
file.Read(ptrName, nNameLen * 2);
bufName.SetLength(nNameLen);
RDebug::Print(_L("read start \n"));
RDebug::Print(_L("ID=%d Name=%S"),nID, &bufName);
RDebug::Print(_L("read end \n"));
//RWriteStream ts;
file.Close();