Delphi,FileStream和MemoryStream

前端之家收集整理的这篇文章主要介绍了Delphi,FileStream和MemoryStream前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想将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);

猜你在找的Delphi相关文章