副标题#e#
TFileStream类使得应用措施可以从磁盘的文件中读取数据。
类干系 TObject->TStream->THandleStream
利用TFileStream类可以会见磁盘文件的信息。该类将打开一个全程的文件,并提供要领来读取该文件。假如应用措施中已经界说了该文件的句柄,可以利用THandleStream工具以同样的模式打开该文件。
要领列表
~TFilStream 删除TFileStream类的实例
TFileStream 建设TFileStream类的实例
要领
TFileStream::~TFileStream
删除一个TFileStream类的实例。
TFileStream::~TFileStream(void);
在应用措施中一般不直接挪用~TFileStream要领,而是挪用delete要领。~TFileStream 要领将在释放工具前封锁文件流的句柄。
TFileStream::TFileStream
建设一个TFileStream类的实例。
__fastcall TFileStream(const System::AnsiString FileName,Word Mode);
不要直接操作TFileStream来实例化读取或屿写入文件中的文件流。用new举办,把文件名和文件打开的方法作为参数通报:
参数Mode指明文件打开的方法。Mode由打开模式与共享模式构成。打开模式取值见下表:
模式 寄义
fmCreate 建设一个指定文件名的文件,假如指定文件名的文件已经存在,则以写模式打开
fmOpenRead 以只读方法打开文件
fmOpenWrite 以写模式打开文件,写到文件的内容将替换文件以前的内容
fmOpenReadWrite 打开文件来批改文件的内容,而不是替换它们
共享模式如下表:
模式 寄义
fmShareCompat 共享与经FCBs方法打开的兼容
fmShareExclusive 其他的应用措施不能打开该文件
fmShareDenyWrite 其他的应用措施只能以只读方法打开文件
fmShareDenyRead 其他的应用措施只能以写方法 打开文件
fmShareDenyNone 其他的应用措施可以以任何方法打开文件
假如文件不能被打开,将激发一个异常。
//————————————————————————-
#p#副标题#e#
THandleStream
THandleStream暗示一个流工具,该工具可以便应用措施读取一个Windows句柄符号的资源。
类干系
利用THandleStream工具可以会见文件、接口、磁盘、邮件或其他可以提供Windows句柄的信息资源。譬喻,FileOpen函数可以提供磁盘上一个文件的Windows句柄。THandleStream工具在利用Windows 句柄举办I/O操纵时要求应用措施利用统一的流接口。为了制止打点文件句柄时的特别耗损,可以利用TFileStream工具处理惩罚磁盘文件。
属性列表
Handle 流从中读取的信息资源的句柄
Size Handle属性指定资源的字节长度
要领列表
~THandleStream 打消THandleStream实例并释放内存
Read 读取Count字节的内容到缓冲区中
Seek 重设句柄流的当前位置
SetSize 配置文件末了符号
THandleStream 建设一个THandleStream类的实例
Write 将Count个字节的数据写到当前位置
属性
THandleStream::Handle
指定流从中读取的信息资源的句柄。
__property int Handle={read = FHandle,nodefault};
从Handle属性中可以得到挪用WindowsAPI时需要的句柄,或文件打点函数的句柄。为了读取资源可以利用THandleStream工具中界说的要领。
Handle属性是一个只读属性。不能通过改变句柄属性使得句柄流在读取操纵中互换,反之亦然。譬喻,假如想将一个以只读方法打开的文件句柄改酿成写模式必需利用下面给出的操纵:
(1)释放流工具。
(2)挪用FileClose函数封锁文件。
(3)以写模式从头打开文件,并利用句柄建设一个新的句柄工具的实例。然后,为文件打开一个TFileStream工具,并为流指定写模式。
只能在THandleStream工具被打消后才气对Handle属性挪用FileClose函数。
THandleStream::Size
指定Handle属性指定资源的字节长度。
__property int Size = {rea = GetSize,write = SetSize,nodefault};
属性Size中抉择了资源的字节长度。配置属性Size可以截短资源中的信息。并不是所有的信息资源都可以利用支持属性Size的THandleStream工具来会见。譬喻,并不能对磁带利用属性Size。
要领
THandleStream::~THandleStream
~THandleStream释放与THandleStream工具有关的内存。
__fastcall virtual ~THandleStream(void) { }
不要直接挪用~THandleStream。用 drlete 举办,它会自动挪用~THandleStream 。
THandleStream::Read
从与句柄流相应的资源中读取count字节的内容到缓冲区中。
virtual int __fastcall Read(void * Buffer ,int Count ) ;
利用Read要领可以在文件的巨细未知时从与指定句柄流相应的资源中读取数据。Read要领将复制资源中Count字节的内容。复制内容从文件的当前位置开始,要领竣事后文件的当前位置加上实际复制的字节数。Read 要领 返回实际复制的字节巨细,假如文件不是足够大则有大概该数值小于Count。所有其他的句柄流的数据读取要领(譬喻RendBuffer, readComponent )都将挪用Read要领来举办实际的读取操纵。
THandleStream::Seek
重设句柄流的当前位置。
virtual int __fasteall Seek(int Offset, Word Origin );
利用Seek 要领可以通过指定偏移量在与句柄流关联的资源中移动当前位置。Seek 要领容许应用措施在资源中的特定位置读取数据。
参数Origin指定如何表明Offset参数,它可以取为下表中的任何一个数值。
值 寄义
soFromBeginning 从资源开始处计较偏移量,当前位置将移到Offset处,Offset必需大于便是0
soFromCurrent 从当前位置计较偏移量,当前位置需要加上Offset
sofromEnd 从资源尾处计较偏移量,ffset必需小表便是0,暗示距末端处Offset字节的位置
Seek要领将返回Position属性的新值,即资源流此刻有位置。
THandleStream::SetSize
配置文件末了符号,以便在指定位置截短资源。
virtual void __fastcall SetSize(int NewSize );
#p#分页标题#e#
挪用SetSize 要领可以配置资源的巨细。Size 要领重载了担任的要领,即容许资源的巨细由句柄的改变来符号。要领SetSize将挪用Seek 要领跳到指定位置,然后写入一个文件尾符号。假如资源巨细不能被改变将激发一个异常。譬喻,为一个配置为FrnOpenRead模式的文件句柄挪用SetSize要领时将会激发一个异常。
THandleStream::THaandleStream
建设一个THandleStream类的实例。
__fastcall THandleSTream(int Handle);
挪用Create要领可觉得给定的句柄示例一个THandleStream类的实例。句柄必需在以相应的模式打开资源时得到。譬喻,假如想从文件中读取信息而建设一个句柄流,可以在模式fmOpenRead或fmOpenReadWrite下打开文件时得到。假如想向文件中写入信息而建设一个句柄流,可以在模式fmOpenWrite或fmOpenReadWrite下打开文件时得到。
THandleStream::Write
将缓冲区中Count个字节的数据库写到资源的当前位置。
virtual int__fastcall Write(const void* Buffer,,int Count);
利用Write要领可以将Count个字节的数据从当前位置开始,写入到与句柄流相关联的资源中。在把数据写入到资源后,Write要领将把当前位置加上写入的实际字节巨细,并返回实际写入的字节巨细。
所有其他的句柄流的写入数据要领(譬喻WruteBuffer,WriteComponent)都将挪用Write要领来举办实际的写操纵。