标题:文件写入是“追加”还是“覆盖”
只看楼主
linruihan
Rank: 2
等 级:论坛游民
帖 子:14
专家分:10
注 册:2010-4-10
结帖率:50%
已结贴  问题点数:10 回复次数:5 
文件写入是“追加”还是“覆盖”
private void listBox_item_update(string content)
   {//更新
        FileStream fs3 = new FileStream(Application.StartupPath + "\\dutylist.txt", FileMode.Open, FileAccess.Write, FileShare.ReadWrite);
        StreamWriter sw = new StreamWriter(fs3);
        sw.WriteLine(content );//这一句有疑问
        sw.Close();
        sw.Dispose();
        fs3.Close();
        fs3.Dispose();
   }
请教一下,sw.Writeline()这一句在写入文件时总是覆盖原来的内容,怎么样才能改成追加文本
可能的话,告诉我在文件末端追加和在文本中某个位置追加如何控制。
非常感谢。
搜索更多相关主题的帖子: content private 
2011-10-18 21:10
xydddaxia
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:33
帖 子:466
专家分:2307
注 册:2009-3-20
得分:3 
程序代码:
private void listBox_item_update(string content)
   {//更新
        StreamWriter fs3= new StreamWriter(Application.StartupPath + "\\dutylist.txt", true);
        fs3.WriteLine(content );
        fs3.Close();
   }

站在春哥的肩膀上
2011-10-18 23:01
linruihan
Rank: 2
等 级:论坛游民
帖 子:14
专家分:10
注 册:2010-4-10
得分:0 
感 谢 先
2楼提供的确时有效,
只是,我不是很明白为什么?
本人非常菜的入门者,还请帮忙说明一下.
2011-10-19 10:56
clhc
Rank: 6Rank: 6
等 级:侠之大者
帖 子:69
专家分:441
注 册:2011-10-11
得分:3 
因为streamwriter有多个不同的构造函数
程序代码:
重载列表
   名称 说明
    StreamWriter(Stream)  用 UTF-8 编码及默认缓冲区大小,为指定的流初始化 StreamWriter 类的一个新实例。
    StreamWriter(String)  使用默认编码和缓冲区大小,为指定路径上的指定文件初始化 StreamWriter 类的新实例。
    StreamWriter(Stream, Encoding)  用指定的编码及默认缓冲区大小,为指定的流初始化 StreamWriter 类的新实例。
    StreamWriter(String, Boolean)  使用默认编码和缓冲区大小,为指定路径上的指定文件初始化 StreamWriter 类的新实例。如果该文件存在,则可以将其覆盖或向其追加。如果该文件不存在,则此构造函数将创建一个新文件。
    StreamWriter(Stream, Encoding, Int32)  用指定的编码及缓冲区大小,为指定的流初始化 StreamWriter 类的新实例。
    StreamWriter(String, Boolean, Encoding)  使用指定编码和默认缓冲区大小,为指定路径上的指定文件初始化 StreamWriter 类的新实例。如果该文件存在,则可以将其覆盖或向其追加。如果该文件不存在,则此构造函数将创建一个新文件。
    StreamWriter(String, Boolean, Encoding, Int32)  使用指定编码和缓冲区大小,为指定路径上的指定文件初始化 StreamWriter 类的新实例。如果该文件存在,则可以将其覆盖或向其追加。如果该文件不存在,则此构造函数将创建一个新文件。

2011-10-19 11:06
yhlvht
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:36
帖 子:707
专家分:4405
注 册:2011-9-30
得分:3 
StreamWriter的构造有7个重载,2楼用的其中一个,第二个bool参数表示追加还是改写
楼主用到的也是其中一个重载,需要追加的话那么在构造FileStream时,FileMode,即打开模式就不要用Open,应该用Append
FileStream fs3 = new FileStream(Application.StartupPath + "\\dutylist.txt", FileMode.Append, FileAccess.Write, FileShare.ReadWrite);
2011-10-19 11:13
linruihan
Rank: 2
等 级:论坛游民
帖 子:14
专家分:10
注 册:2010-4-10
得分:0 
学习了很多.
2011-10-19 15:59



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-352854-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.056481 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved