Delphi 缓冲文件流-TBufferedFileStream TFileStream 性能测试

2022-12-30 10:51:25 作者:admin

本文整理自网络,侵删。

 

uses
  System.Diagnostics; // TStopwatch

procedure TForm1.btnWriteClick(Sender: TObject);
var
  sw: TStreamWriter;
  I: Integer;
begin
  sw := TStreamWriter.Create('test.txt', False, TEncoding.UTF8);
  try
    sw.WriteLine('Hello world');
    for I := 0 to 99999 do
      sw.WriteLine('Hello ' + I.ToString);
  finally
    sw.Free;
  end;
  Memo1.Lines.Add('File written')
end;

procedure TForm1.btnReadClick(Sender: TObject);
var
  FileStream: TFileStream;
  Total, I: Integer;
  sw: TStopWatch;
  ch: char;
begin
  sw := TStopwatch.StartNew;
  FileStream := TFileStream.Create('test.txt', fmOpenRead);
  try
    Total := 0;
    while FileStream.Read(ch, 1) = 1 do
    begin
      if ch = #13 then
        Inc(Total);
    end;
    Memo1.Lines.Add('Lines : ' + Total.ToString);
  finally
    FileStream.Free;
  end;
  sw.Stop;
  Memo1.Lines.Add('TFileStream msec : ' + sw.ElapsedMilliseconds.ToString);
end;

procedure TForm1.btnReadBufferedClick(Sender: TObject);
var
  BufFileStream: TFileStream;
  Total, I: Integer;
  sw: TStopWatch;
  ch: char;
begin
  sw := TStopwatch.StartNew;
  BufFileStream := TBufferedFileStream.Create('test.txt', fmOpenRead);
  try
    Total := 0;
    while BufFileStream.Read(ch, 1) = 1 do
    begin
      if ch = #13 then
        Inc(Total);
    end;
    Memo1.Lines.Add('Lines : ' + Total.ToString);
  finally
    BufFileStream.Free;
  end;
  sw.Stop;
  Memo1.Lines.Add('TBufferedFileStream msec : ' + sw.ElapsedMilliseconds.ToString);
end;

相关阅读 >>

Delphi 当前日期的加减运算

Delphi 查找字符串并删除该字符串

Delphi 数据模块池

阻止删除文件(文件占坑)的Delphi代码

图解qq群如何快速找到自己想要的Delphi资源

Delphi中如何提高listview删除item的速度

Delphi 查询进程名进程id/进程路径 父进程/子进程

Delphi 中 findwindow 和 findwindowex 的语法和用法

Delphi 动态设置屏幕分辨率

Delphi post数据与对应的接收方式

更多相关阅读请进入《Delphi》频道 >>



在线咨询 拨打电话