TMemoryStream = class(TCustomMemoryStream) private FCapacity: Longint; procedure SetCapacity(NewCapacity: Longint); protected //Realloc方法,以8K为单位分配动态内存,内存的大小由NewCapacity指定,函数返回指向所分配内存的指针。 function Realloc(var NewCapacity: Longint): Pointer; virtual; //Capacity属性决定了分配给内存流的内存池的大小。这与Size属性有些不同。 //Size属性是描述流中数据的大小。在程序中可以将Capacity 的值设置的比数据所需 //最大内存大一些,这样可以避免频繁地重新分配。 property Capacity: Longint read FCapacity write SetCapacity; public destructor Destroy; override; //Clear方法释放内存中的内存池,并将Memory属性置为nil。 procedure Clear; //LoadFromStream方法将Stream指定的流中的全部内容复制到MemoryStream中 procedure LoadFromStream(Stream: TStream); //LoadFromFile方法将FileName指定文件的所有内容复制到MemoryStream中,并取代已有内容 procedure LoadFromFile(const FileName: string); //SetSize方法消除内存流中包含的数据,并将内存流中内存池的大小设为Size字节。 //如果Size为零,是SetSize方法将释放已有的内存池,并将Memory属性置为nil; //否则,SetSize方法将内存池大小调整为Size。 procedure SetSize(NewSize: Longint); override; function Write(const Buffer; Count: Longint): Longint; override; end;