【问题标题】:How to detect end of stream?如何检测流结束?
【发布时间】:2012-06-22 14:39:19
【问题描述】:

我有一个将数据输出到流的 DLL。但它添加了我不想要的后缀和前缀。 我可以创建一个 MemoryStream,让 DLL 输出数据然后修剪它,但是可能有几 GB 的数据,所以我只想将它直接保存到文件(FileStream)中。 我认为最好的解决方案是创建自己的 Stream 类。 所以我做了:

function TFileStream2.Write(const Buffer; Count: Integer): Longint;

我在哪里检查位置,如果它是 = 0,那么我从缓冲区中丢弃前几个字节。 这样我可以修剪文件的开头。但是如何检测流的结束,以便我可以从末尾丢弃一些字节?

【问题讨论】:

    标签: delphi file stream position eof


    【解决方案1】:

    当流对象被销毁时,只需剪掉文件的最后部分。您可以通过修改Size 属性来做到这一点。

    【讨论】:

    • 但我认为字节已经保存到磁盘。可以这样缩短文件吗?
    猜你喜欢
    • 1970-01-01
    • 2012-10-13
    • 1970-01-01
    • 2014-08-14
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多