|
|
|
Reading transfers data from a file to a descriptor, and writing transfers data from a descriptor to a file.
Use RFile::Read() to read, and
RFile::Write() to write.
// Open file1
_LIT(KMyFile,"c:\\documents\\file1");
RFile myFile;
User::LeaveIfError(myFile.Open(fs,KMyFile,EFileShareExclusive|EFileWrite
));
// Write to current file position: start of file
_LIT8(KWriteBuf,"write data");
myFile.Write(KWriteBuf);
// Read from position 0: start of file
TBuf8<6> readBuf1;
myFile.Read(0,readBuf1); // readBuf1 is now "write "
// Read from current position
TBuf8<4> readBuf2;
myFile.Read(readBuf2); // readBuf2 is now "data"
In all cases, the file data is treated as binary and byte descriptors are used (TDes8, TDesC8). Thus, file operations are not dependent on the Unicode/non-Unicode build variant.
There are several variants of both Read() and
Write(). The basic Read(TDes8& aDes) and
Write(const TDesC8& aDes) are supplemented by variants
allowing the descriptor length to be overridden, or the seek position of the
first byte to be specified, or asynchronous completion, or any combination.