我想将FileStream的一部分复制到内存流中.
FileStream.Write(Pointer(MemoryStream)^,MemoryStream.Size); FileStream.Read(Pointer(MemoryStream)^,count);
是对的吗?这对我来说不行.
解决方法
你必须从FileStream读取()到一个单独的缓冲区,然后Write()到MemoryStream,即:
var Buffer: PByte; GetMem(Buffer,NumberOfBytes); try FileStream.ReadBuffer(Buffer^,NumberOfBytes); MemoryStream.WriteBuffer(Buffer^,NumberOfBytes); finally FreeMem(Buffer); end;
由于您正在处理两个TStream对象,所以使用TStream.CopyFrom()方法会更容易,即:
MemoryStream.CopyFrom(FileStream,NumberOfBytes);