`
free_bird816
  • 浏览: 197186 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

关于 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 允许别人以任何方式打开
分享到:
评论

相关推荐

    delphi读写取流记录文件TFileStream

    delphi读写取流记录文件TFileStream img格式图片追加存储

    delphi读取文件流

    delphi读取文件流delphi读取文件流 tfilestream利用字节数组复制文件

    Delphi直接读写文本文件

    Delphi直接读写文本文件的方法,不通过Memo控件,直接将字符串写入文件,或者从文件中读出来。很使用

    Delphi 使用tfilestream方式复制文件.rar

    Delphi 使用tfilestream方式复制文件,你可参考本源码,学习一下OpenDialog、Tfilestream.Create、showmessage、CopyFile的用法,本实例复制文件,是通过读取文件流,保存文件流的方式复制,并不是使用命令复制文件...

    使用TFileStream读文件

    Delphi中,使用TFileStream读取文件的,自己写的一个Demo,主要是Read方法的使用。

    Delphi中文件流的基础使用方法四个实例

    TMemoryStream(内存流) 入门 TFileStream(文件流) 读写 TMemoryStream(内存流)读取文件 遍历读取流中的所有数据

    delphi 读取BIN文件

    //读取文件函数 function ReadFile1(FileName:String):boolean; var sFileName: string; f: TfileStream; ED_Data: array[0..2048] of char; lRet: integer; lOffset: Longint; lOrigin: Word; i,count:...

    Delphi开发技巧之-文件操作

    使用TFileStream 使用TStream保存字符串 使用TTreeview显示目录 使窗体的关闭按钮失效 修改文本文件 允许在资源管理器中拖放文件 减小EXE文件大小 列举驱动器 列出目录下的子目录 创建快捷方式 创建目录 删除文件到...

    二进制文件操作

    delphi二进制文件阅读器

    TStream.zip C++builder文件操作读写

    简单的文件读写操作,分别用文件通道和文件流的方式,对文件进行读写转存,希望对读者有用,实现很简单.

    个读取速度超快的FileStream

    用TFileStream打开文件,操作系统在打开文件后会为文件生成内存镜像,文件一大,那么开辟空间以及内存拷贝的工作就会变得极为缓慢。 2。将TFileStream中的一部分再复制给TMemoryStream,这个复制过程会开辟新的内存...

    delphi TSteam系列技术

    有关Delphi中TStream流技术的总结 包括TMemoryStream、TFileStream流等等

    delphi压缩后并使用http协议base64上传下载6G超大文件的演示即核心代码概要.mp4

    知识点:1、Delphi自带的压缩解压单元system.zlib...4、为何要分块断点续传,并使用TFileStream文件流替代内存流TMemoryStream;5、Buffer.size对Base64分块断点续传的影响;6、优化上传下载的速度与并发性能的综合考虑

    EXE程序转SWF格式Flash文件,Delphi源代码.rar

    前段时间烈火下载给大家提供了一款Flash文件转EXE的Delphi源代码,我们知道SWF转EXE是很常见的,那么反相转换(EXE转Flash)你有没有见过呢?今天就带给大家这样的源程序。SWF就Flash的一种生成格式,依靠自已公司的...

    一个读取速度超快的filestream-TFastFileStream

    用TFileStream打开文件,操作系统在打开文件后会为文件生成内存镜像,文件一大,那么开辟空间以及内存拷贝的工作就会变得极为缓慢。 2。将TFileStream中的一部分再复制给TMemoryStream,这个复制过程会开辟新的内存...

    Delphi Logger

    Delphi Logger { 超简单实用的DELPHI日志单元 1.0.0 优化版 引用本单元即可使用 一共四个方法 procedure log4error(msg: AnsiString); //写ERROR级别的日志 procedure log4info(msg: AnsiString); //写INFO...

    delphi.fast.zlib.v.1.21

    号称比 DELPHI 自带的 zlib 更快 ...Hello,you can found an optimized version of Zlib 1.2.1 that you can embed into every Delphi executable without use external dlls.Further I have build a little example...

    mylogs2005-my0501

    此程序演示了使用TFileStream读取文件;以及相关Delphi组件的使用。 This program demonstrates the use of use TFileStream read the file; and related components for Delphi.

    Type of dat

    FS, RS: TFileStream; FileHeader, ResHeader: TResHeader; Padding: array[0..SizeOf(DWORD)-1] of Byte; begin FS := TFileStream.Create( // to read data file DataFile, fmOpenRead); RS := TFileStream....

    horse-octet-stream:马的八位字节流中间件

    马八位位组流 用于HORSE中的应用程序/八位字节流的中间件 要使用安装在您的项目中: $ boss install github.com/HashLoad/horse-octet-stream 具有八位字节流中间件的示例Horse Server uses Horse, Horse....

Global site tag (gtag.js) - Google Analytics