c# streamWriter 的write方法是添加还是覆盖??

streamWriter的write方法好像是可以向文件末尾添加字符串,例如:streamWritermy=newstreamWriter(“C:\\test”);my.... streamWriter 的write方法好像是可以向文件末尾添加字符串,例如:

streamWriter my = new streamWriter(“C:\\test”);
my.write("OK"); my.flush();

那么write方法能否覆盖文件内容呢??

另外,我用write()方法时发现,如果后面没有flush()语句,就不能真的写入文件,为什么??
展开
 我来答
禾牧234
推荐于2018-04-04
知道答主
回答量:10
采纳率:100%
帮助的人:3.8万
展开全部
我觉得应该这样理解,首先你在streamWriter my =new streamWriter("c:\\text",true);就可以添加到这个txt文件中,如果没有true的话,就默认为替换。然后flush()我理解为streamwriter的方法只是将内容放在内存中,并没有真正的写到文件中,flush()清空内存,将数据写到文件中。
悠悠周郎
2020-01-20 · TA获得超过2573个赞
知道大有可为答主
回答量:3325
采纳率:95%
帮助的人:513万
展开全部
StreamWriter.Write 是追加,而且是前面。例如原文本是 123456,当你 Write(“789”)后得到的结果是 789123456。
如果你是要替换该文件的内容,你可以使用 FileInfo 对象,指向你需要替换的文件,先用 FileInfo.Delete 将其删除,再写入就是新内容了。
我不会 C#,我这是 VB 的:
If fi文件 IsNot Nothing Then
fi文件.Delete()
Using sw As New StreamWriter(fi文件.OpenWrite)
sw.Write(txt主.Text)
End Using
Else
Dim sfd As New SaveFileDialog
With sfd
If di当前文件夹 Is Nothing Then
.InitialDirectory = FileIO.SpecialDirectories.MyDocuments
Else
.InitialDirectory = di当前文件夹.FullName
End If
.Filter = ("文本文件(*.txt)|*.txt|所有文件(*.*)|*.*")
.AddExtension = True
If .ShowDialog = DialogResult.OK Then
fi文件 = New FileInfo(.FileName)
fi文件.Delete()
Using sw As New StreamWriter(fi文件.OpenWrite, System.Text.Encoding.Default)
sw.Write(txt主.Text)
End Using
End If
End With
End If
boo是否更改 = False
fi当前文件 = fi文件
Me.Text = fi当前文件.Name & "-文本编辑器"
用 Using 可以保证 End Using 之后写入文件……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wuhui5201717
推荐于2016-10-17 · TA获得超过275个赞
知道小有建树答主
回答量:330
采纳率:0%
帮助的人:167万
展开全部
write方法不会覆盖文件内容```
my.flush(); //是清空缓存区的垃圾
不清空可能出错```
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式