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

streamWriter 的write方法好像是可以向文件末尾添加字符串,例如:

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

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

另外,我用write()方法时发现,如果后面没有flush()语句,就不能真的写入文件,为什么??

我觉得应该这样理解,首先你在streamWriter my =new streamWriter("c:\\text",true);就可以添加到这个txt文件中,如果没有true的话,就默认为替换。然后flush()我理解为streamwriter的方法只是将内容放在内存中,并没有真正的写到文件中,flush()清空内存,将数据写到文件中。
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-01-20
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 之后写入文件……
第2个回答  推荐于2016-10-17
write方法不会覆盖文件内容```
my.flush(); //是清空缓存区的垃圾
不清空可能出错```本回答被提问者采纳

c# streamWriter 的write方法是添加还是覆盖??
我觉得应该这样理解,首先你在streamWriter my =new streamWriter("c:\\\\text",true);就可以添加到这个txt文件中,如果没有true的话,就默认为替换。然后flush()我理解为streamwriter的方法只是将内容放在内存中,并没有真正的写到文件中,flush()清空内存,将数据写到文件中。

C# 中如何设置streamwriter 写入文件的格式是一行接一行的?
StreamWrite是这样的,写入的文件原内容会被新写入的覆盖掉。如果一次写入一行,可以使用While()循环,只要读取的没有结束,就循环向文本写入内容,只要StreamWriter不结束,内容是可以持续写入的。如果下一次新写入内容,而原TXT的内容也要保存的话,可以用File.ReadAllText()方法,把原内容先读出来,然后...

C#用 StreamWriter创建的文件!怎么删除文件中的某条信息???
StreamWrite是这样的,写入的文件原内容会被新写入的覆盖掉。如果一次写入一行,可以使用While()循环,只要读取的没有结束,就循环向文本写入内容,只要StreamWriter不结束,内容是可以持续写入的。如果下一次新写入内容,而原TXT的内容也要保存的话,可以用File.ReadAllText()方法,把原内容先读出来,然后...

c#中如何在目标文本的首行填写内容
文件的写入只有覆盖和追加的,没有插入模式的,你从文件头写总是会覆盖掉原有数据的 只能像楼上的,用临时文件,或者读原文件到内存,写入新数据后再把读出来的内容写在后面

C#编程 streamwriter 在文件后面接着写
读写时不用重新编码,提供了更文件的读写方式。StreamWriter类允许将字符和字符串写入到文件中,不必转换为字节,它处理底层的转换,向FileStream对象写入数据。StreamWriter sw = new StreamWriter("d:\\\\1.txt", true);sw.Write("2");sw.Close();true 表示 后面添加,false覆盖 ...

C# 写入文本时总是覆盖
Append吧 StreamWriter streamWriter = null;fileStream = new FileStream(path, FileMode.Append, FileAccess.Write);另外也可以用FileInfo的AppendText方法 如果你想追加到后面,起始你直接读出来然后加上,再用你的“覆盖”操作不就行了?

c#语言编程在一个TXT文件中输入文本,怎样在输出内容之前先清空文件中原...
你是说覆盖旧文件吗?StreamWriter sw = new StreamWriter(fullPath, false, Encoding.UTF8);上面的false表示覆盖,如果设置为true,表示追加到文件最后

c#如何覆盖已有文本的内容 可不可以用StreamWriter
可以用StreamWriter来覆盖

C#创建文本文件,并写入的问题
\/\/如果文件不存在,则创建;存在则覆盖 string strTest = "该例子测试一个字符串写入文本文件。";System.IO.File.WriteAllText(@"C:\\testDir\\test1.txt", strTest, Encoding.UTF8);\/\/在将文本写入文件前,处理文本行 \/\/StreamWriter一个参数默认覆盖 \/\/StreamWriter第二个参数为false覆盖现有文件...

C# 记事本 如何覆盖原内容 代码
比如你打开的文件是C:\\a.txt,那么你点击保存之后,直接写入原文件,就已经实现了覆盖和替换了 C#不是我的专长,我举一个其他的例子,文件的打开方式一般有追加,只读,写入三种,采用写入方式,写入的数据就会完全覆盖原来的内容

相似回答