Delphi文件访问 – 如果我不关闭文件,为什么输出不完整?

Delphi文件访问 – 如果我不关闭文件,为什么输出不完整?,第1张

概述下面是一个简单的控制台应用程序,然后生成10组3个随机数,并将它们打印到控制台窗口和文本文件“Output.txt”. program Project1;{$APPTYPE CONSOLE}{$R *.res}uses System.SysUtils;var outputFile: TextFile; i: Integer; a,b,c: Single;begin 下面是一个简单的控制台应用程序,然后生成10组3个随机数,并将它们打印到控制台窗口和文本文件“Output.txt”.

program Project1;{$APPTYPE CONSolE}{$R *.res}uses  System.SysUtils;var  outputfile: Textfile;  i: Integer;  a,b,c: Single;begin  try    Randomize;    Assignfile(outputfile,'Output.txt');    ReWrite(outputfile);    for i := 0 to 9 do    begin      a := Random;      b := Random;      c := Random;      WriteLn(floatToStr(a) + Char(9) + floatToStr(b) + Char(9) + floatToStr(c));      WriteLn(outputfile,floatToStr(a) + Char(9) + floatToStr(b) + Char(9) + floatToStr(c));    end;    Close(outputfile);    Sleep(10000);  except    on E: Exception do      Writeln(E.Classname,': ',E.Message);  end;end.

仅当我包含第26行时,文本文件才包含与控制台窗口相同的信息:

Close(outputfile);

如果我从代码中省略了这一点,我希望无论如何都能将相同的数据打印到文本文件中,但实际打印在文本文件中的内容与前9行相同,然后是不完整的最终行.

为什么会这样?由于省略了Close程序,最后一行只能通过什么过程写入?

解决方法 这是因为文件输出是缓冲的.当您关闭文件时,它会刷新缓冲区并将剩余的内容输出到磁盘.

另一种方法是在WriteLn之后对文件执行Flush(outputfile),它将完成同样的事情,但代价是性能.

总结

以上是内存溢出为你收集整理的Delphi文件访问 – 如果我不关闭文件,为什么输出不完整?全部内容,希望文章能够帮你解决Delphi文件访问 – 如果我不关闭文件,为什么输出不完整?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1269508.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存