首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

数据流类Tmemorystream与Tstream有什么区别?该怎么解决

2012-02-13 
数据流类Tmemorystream与Tstream有什么区别?如题[解决办法] TCustomMemoryStream class(TStream) privat

数据流类Tmemorystream与Tstream有什么区别?
如题

[解决办法]
TCustomMemoryStream = class(TStream)
private
FMemory: Pointer;
FSize, FPosition: Longint;
protected
procedure SetPointer(Ptr: Pointer; Size: Longint);
public
function Read(var Buffer; Count: Longint): Longint; override;
function Seek(Offset: Longint; Origin: Word): Longint; override;
procedure SaveToStream(Stream: TStream);
procedure SaveToFile(const FileName: string);
property Memory: Pointer read FMemory;
end;

{ TMemoryStream }

TMemoryStream = class(TCustomMemoryStream)
private
FCapacity: Longint;
procedure SetCapacity(NewCapacity: Longint);
protected
function Realloc(var NewCapacity: Longint): Pointer; virtual;
property Capacity: Longint read FCapacity write SetCapacity;
public
destructor Destroy; override;
procedure Clear;
procedure LoadFromStream(Stream: TStream);
procedure LoadFromFile(const FileName: string);
procedure SetSize(NewSize: Longint); override;
function Write(const Buffer; Count: Longint): Longint; override;
end;

就这样的关系
[解决办法]
TStream 是一个通用 Stream 抽像, 提供 Position, Read, Write 主要的流操作几个方法&属性

相关的有 TMemoryStream , TFileStream, TSocketStream

都派生自 TStream, SocketStream 中没有 Position
[解决办法]
祖先类与子类
[解决办法]
一个是抽象的

一个子类化了

TStream 不能直接实例化

TmemoryStream可以

利用TStream 可以

TMemoryStream TFileStream 等等 从TStream继承来的类可以方便地交换传递数据...

热点排行