我有一个DLL,它将数据输出到流中。但它添加了我不想要的后缀和前缀。我可以创建一个内存流,让DLL输出数据,然后修剪它,但可能有几GB的数据,所以我只想把它直接保存到文件(FileStream)中。我认为最好的解决方案是创建自己的 Stream 类。所以我做了:
function TFileStream2.Write(const Buffer; Count: Integer): Longint;
我检查位置,如果它是 = 0,那么我丢弃缓冲区中的前几个字节。这样我就可以修剪文件的开头。但是,如何检测流的结束,以便我可以丢弃末尾的一些字节?
当流对象被销毁时,只需修剪文件的最后一部分。可以通过修改 Size
属性来执行此操作。