TStream 是一个抽象的基类, 不能直接生成对象
TStream --> THandleStream --> TFileStream TStream --> TCustomMemoryStream --> TMemoryStream TStream --> TCustomMemoryStream --> TResourceStream
TFileStream: 文件流 TStringStream: 字符串流 TMemoryStream: 内存流 TResourceStream: 资源文件流
TStream 有 Seek() 方法, 它的子类们( TFileStream、TMemoryStream、TBytesStream、TStringStream、 TResourceStream、TStreamAdapter、THandleStream...) 也都有 Seek() 方法, 且用法一样.
另外它们也都有 Position 属性, 使用 Position 属性完全可以代替 Seek() 方法, 通过 Position 还可以方便地 "读取" 当前位置; 但如果只是移动位置, 使用 Seek() 方法更方便.
方法的参数: Seek(偏移量, 偏移的起始点), 返回值是偏移后的当前位置. 偏移量: 以字节为单位, 负值表示向前偏移; 起始点: 0 表示从头算起、 1 表示从当前位置算起、 2 表示从尾部算起; 从尾部算起时, 偏移量应该是个负值.
指示起始点时, 可以使用 soFromBeginning、soFromCurrent、soFromEnd 三个常数, 但最好使用枚举 TSeekOrigin = (soBeginning, soCurrent, soEnd);
Seek() 方法有两个重载, 就是可以使用常数、也可以使用枚举来标识偏移的起始点.
TFileStream 打开模式与共享模式:
分类 |
参数 |
说明 |
打 开 模 式 |
fmCreate |
建立文件, 如果存在则打开它。 |
fmOpenRead |
只读打开 |
fmOpenWrite |
只写打开 |
fmOpenReadWrite |
读写打开 |
共 享 模 式 |
fmShareCompat |
共享模式, 兼容 Dos |
fmShareExclusive |
不允许别人以任何方式打开 |
fmShareDenyWrite |
允许别人以只写方式打开 |
fmShareDenyRead |
允许别人以只读方式打开 |
fmShareDenyNone |
允许别人以任何方式打开
|
|
请发表评论