当前位置: 首页 > 编程语言 > C#

尽管append = false,但无法关闭文件,因此无法使用streamwriter覆盖文件分享

时间:2023-04-10 13:55:32 C#

C#学习教程:尽管append=false无法关闭文件,因此无法使用streamwriter覆盖文件我的目标是只打开和关闭文件一次并多次“覆盖”它。我永远不想追加。打开和关闭文件一次的原因是我希望写操作最快。我在streamwriter构造函数中传递了append=false,但它仍然附加而不是覆盖。privatevoidtestSpeed(){StreamWritersw1=newStreamWriter(@"d:logfolderoverwrite.txt",false);sw1.AutoFlush=true;for(inti=0;i<5000;i++){sw1.Write(i);}sw1.Close();我的预期输出是文件应该只有4999但我得到的不是这个0123456789101112131415161718192021222324252627282930313233.........一直到4999这个文件已经存在d:logfolder覆盖。append=false参数仅适用于流执行的单个整体写入。每次调用stream.Write()都会将数据附加到流中已有的数据中。您可能希望在每次迭代期间使用Flush()或Clear()流,尽管这很可能行不通。要得到你想要的东西,你要么必须每次都打开一个新连接,要么等到最后一个东西被写入。编辑sw1.autoflush=true只是意味着它将立即将文件Write()到Write()方法中的上下文,而不是等到连接关闭。如果你只想写集合中的最后一项,你可以这样做:for(inti=0;i但是,如果你正在使用一个列表或一个项目数组,那么你可以这样做:Listnums=newList();//请注意,这需要包含System.Linq命名空间。sw1.Write(nums.Last());您需要使用FileStreamfs=newFileStream(filename,FileMode.Create,FileAccess.Write);以上是C#学习教程:虽然append=false,但是无法关闭文件,所以不能用streamwriter覆盖文件分享的所有内容,如果对大家有用,需要详细了解C#学习教程,希望大家多多关注---本文来自网络收藏,不代表立场,如涉及侵权,请点击右边联系管理员删除,转载请注明出处: