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