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文件访问 – 如果我不关闭文件,为什么输出不完整?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)