流对象基类TStream 继承于 TObject; 抽象类;
组件对象可以作为流方法中的参数进行传递;
文件对象可以通过流自动创建和关联;
包含的继承类有:
1. TFileStream
2. TStringStream
3. TMemoryStream
4. TBlobStream
5. TWinSocketStream
6. TOleStream
7. THandleStream
属性:
1. property Position: Int64;
读写流时的偏移位置(单位:Byte);
2. property Size: Int64;
流的大小(单位:Byte);
方法:
1. function CopyFrom(Source: TStream; Count: Int64): Int64;
复制指定字节数到另外一个Stream.
2. function Read(var Buffer; Count: Longint): Longint; virtual; abstract;
读流数据;抽象的,纯虚方法;
读 Count bytes 到 Buffer 中; 返回实际读取的 byte 数.
3. procedure ReadBuffer(var Buffer; Count: Longint);
从流中读数据到 Buffer 中;实际上是调用的 Read 方法;
读取异常时, 引发EReadError.
4. function ReadComponent(Instance: TComponent): TComponent;
调用的是全局方法: ReadComponentRes.
从流中读取数据分配给实例的属性;返回组件;如果组件为nil , 会构建一个实例;
5. function ReadComponentRes(Instance: TComponent): TComponent;
从资源文件格式流中读取组件和它的属性;
自动调用全局方法 :function ReadComponentResFile(const FileName: string; Instance: TComponent): TComponent;
6. function Seek(Offset: Longint; Origin: Word): Longint; overload; virtual;
function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; overload
; virtual;
虚方法; 移动到流的指定位置; 返回新的位置;
Origin : 起点, 有值: soFromBeginning, soFromCurrent, soFromEnd .
7. procedure SetSize(NewSize: Longint); overload; virtual;
procedure SetSize(const NewSize: Int64); overload; virtual;
设置流资源的大小;
8. function Write(const Buffer; Count: Longint): Longint; virtual; abstract;
向流中写数据;
9.procedure WriteBuffer(const Buffer; Count: Longint);
把指定大小的数据写到流中;调用 Write方法;
10. procedure WriteComponent(Instance: TComponent);
把组件和其属性写到流中;
11. procedure WriteComponentRes(const ResName: string; Instance: TComponent);
把资源文件格式中的数据写到流中;