加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi,FileStream和MemoryStream

发布时间:2020-12-15 04:25:23 所属栏目:大数据 来源:网络整理
导读:我想将FileStream的一部分复制到内存流中. FileStream.Write(Pointer(MemoryStream)^,MemoryStream.Size);FileStream.Read(Pointer(MemoryStream)^,count); 是对的吗?这对我来说不行. 解决方法 你必须从FileStream读取()到一个单独的缓冲区,然后Write()到Me
我想将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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读