带Cache的FileStream解决办法

带Cache的FileStream
当创建一个TFileStream并顺序读取的时候,如果每次读取的字节比较少时,效率是相当低的。大家可以做一个测试:

var
  aStream: TStream;
  B: Byte;
  T: TDateTime;
begin
  if not OpenDialog1.Execute then
  Exit;
  Caption := '';
  Application.ProcessMessages;
  T := Now;
  aStream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead or fmShareDenyWrite);
  try
  repeat
  until aStream.Read(B, 1) = 0;
  finally
  aStream.Free;
  end;
  Caption := TimeToStr(Now - T);
end;

在我的笔记本上,处理一个3M的文件就用了12秒。

加入缓存处理后,用时不到0.2秒。

缓存处理的代码内容请参见我的博客: http://blog.csdn.net/bamboocaep



------解决方案--------------------
楼主,好人啊,多谢分享。
一定关注博客。
------解决方案--------------------
谢谢分享