以下控制台应用程序利用 TStringList.SaveToFile 将多行写入文本文件:
program Project1;
{$APPTYPE CONSOLE}
{$R *.res}
uses
System.SysUtils,
System.Classes;
var
i: Integer;
a,b,c: Single;
myString : String;
myStringList : TStringList;
begin
try
Randomize;
myStringList := TStringList.Create;
for i := 0 to 1000000 do
begin
a := Random;
b := Random;
c := Random;
myString := FloatToStr(a) + Char(9) + FloatToStr(b) + Char(9) + FloatToStr(c);
myStringList.Add(myString);
end;
myStringList.SaveToFile('Output.txt');
myStringList.Free;
WriteLn('Done');
Sleep(10000);
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
end.
编写一个包含 1000001 行的 >50MB 文件大约需要 3 秒,而且似乎工作正常。但是,许多人提倡在此类过程中使用流。与 TStringList.SaveToFile 相比,流等效项是什么以及使用它的优点/缺点是什么?