关于 Delphi 中流的使用(2) 用 TFileStream(文件流) 读写

TStream 是一个抽象的基类, 不能直接生成对象. 在具体的应用中, 主要使用它的子孙类:
TFileStream: 文件流
TStringStream: 字符串流
TMemoryStream: 内存流
TResourceStream: 资源文件流

THandleStream: 是 TFileStream 的父类、TStream 的子类
TCustomMemoryStream: 是 TMemoryStream 和 TResourceStream 的父类、TStream 的子类

与流相关的常用类还有: TReader、TWriter、TCompressionStream、TDecompressionStream

来一个文件流的例子:


 

procedure TForm1.Button1Click(Sender: TObject);
var
  getStream,setStream: TFileStream; {声明一个文件流}
  getPath,setPath: string;
begin
  getPath := 'c:/temp/get.jpg'; {需要这个文件存在}
  setPath := 'c:/temp/set.jpg'; {这个会自动建立}
  if not FileExists(getPath) then
  begin
    ShowMessage('找不到我们要测试的图片文件: ' + getPath);
    Exit;
  end;

  getStream := TFileStream.Create(getPath, fmOpenRead or fmShareExclusive);
  setStream := TFileStream.Create(setPath, fmCreate);
  {建立文件流需要两个参数: 参数 1 是路径, 参数 2 是打开模式}

  getStream.Position := 0; {流指针移到开始, 复制时从这里开始}
  setStream.CopyFrom(getStream, getStream.Size); {Copy 流}
  {CopyFrom 的参数 2 是要复制的内容大小; 如果为 0 , 不管指针在什么位置都会复制所有内容}
  {CopyFrom 返回实际拷贝的字节数}

  {这时硬盘上就有 set.jpg 文件, 与 get.jpg 一么一样}
  {其实就是复制文件, 不过这里我们是用文件流实现的}

  getStream.Free;
  setStream.Free;
end;

TFileStream 打开模式与共享模式:

分类参数说明



fmCreate 建立文件, 如果存在则打开它。
fmOpenRead只读打开
fmOpenWrite只写打开
fmOpenReadWrite读写打开



fmShareCompat共享模式, 兼容 Dos
fmShareExclusive 不允许别人以任何方式打开
fmShareDenyWrite 允许别人以只写方式打开
fmShareDenyRead允许别人以只读方式打开
fmShareDenyNone允许别人以任何方式打开

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TFileStreamDelphi 中用于读写文件的类,它可以用来读取和写入二进制文件和文本文件。以下是使用 TFileStream 的基本步骤: 1. 创建 TFileStream 对象。可以使用以下语法创建 TFileStream 对象: ```delphi FileStream := TFileStream.Create(FileName, Mode); ``` 其中,`FileName` 是要读写文件名,`Mode` 是文件的打开模式,可以是 `fmCreate`(创建新文件并打开)或 `fmOpenReadWrite`(打开现有文件并可读可写)等。 2. 使用 TFileStream 对象进行读写操作。可以使用以下方法读写文件: - `Read()`:从文件中读取数据。 - `Write()`:将数据写入文件。 例如,要读取一个整数,可以使用以下代码: ```delphi var FileStream: TFileStream; MyInteger: Integer; begin FileStream := TFileStream.Create('MyFile.dat', fmOpenRead); try FileStream.Read(MyInteger, SizeOf(MyInteger)); finally FileStream.Free; end; end; ``` 要将一个字符串写入文件,可以使用以下代码: ```delphi var FileStream: TFileStream; MyString: string; begin FileStream := TFileStream.Create('MyFile.txt', fmCreate); try MyString := 'Hello, world!'; FileStream.Write(MyString[1], Length(MyString) * SizeOf(Char)); finally FileStream.Free; end; end; ``` 3. 关闭 TFileStream 对象。使用完毕后,应该释放 TFileStream 对象。可以使用以下代码释放 TFileStream 对象: ```delphi FileStream.Free; ``` 这是使用 TFileStream 的基本步骤,根据需要可以进行更多的读写操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值