我想将FileStream的一部分复制到内存流.
FileStream.Write(Pointer(MemoryStream)^, MemoryStream.Size);
FileStream.Read(Pointer(MemoryStream)^, count);
Run Code Online (Sandbox Code Playgroud)
是对的吗?它不适合我.
Rem*_*eau 19
你必须从FileStream中将Read()放入一个单独的缓冲区,然后将Write()放到MemoryStream中,即:
var
Buffer: PByte;
GetMem(Buffer, NumberOfBytes);
try
FileStream.ReadBuffer(Buffer^, NumberOfBytes);
MemoryStream.WriteBuffer(Buffer^, NumberOfBytes);
finally
FreeMem(Buffer);
end;
Run Code Online (Sandbox Code Playgroud)
由于您正在处理两个TStream对象,因此使用TStream.CopyFrom()方法会更容易,即:
MemoryStream.CopyFrom(FileStream, NumberOfBytes);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20178 次 |
| 最近记录: |