苏飞论坛

标题: C#怎么给现在文件内容追加新内容 [打印本页]

作者: 站长苏飞    时间: 2013-7-8 09:14
标题: C#怎么给现在文件内容追加新内容

                            C#怎么给现在文件内容追加新内容

创建和读取文件的方法我在上一个文章中已写过大家的兴趣的可以去看看
http://www.sufeinet.com/thread-4102-1-1.html
关于追加文件的方法在C#中有两种方法,
第一种我们还来使用

StreamWriter的方式,我们都还记得创建文件时是这样写的
[code=csharp]    Encoding code = Encoding.GetEncoding("gb2312");
StreamWriter sw = new StreamWriter(htmlfilename, false, code);[/code]
其实很简单,我们看一下第二个参数的解释就明白了
  1. 确定是否将数据追加到文件。如果该文件存在,并且 append 为 false,则该文件被改写。如果该文件存在,并且 append 为 true,则数据被追加到该文件中。否则,将创建新文件。
复制代码
意思说是说如果为False就是覆盖文件,
如果是True,当文件存在时就是追加的意思
这种写法只要将False修改为True就可以实现追加文件的方法。
如下
[code=csharp]    Encoding code = Encoding.GetEncoding("gb2312");
StreamWriter sw = new StreamWriter(htmlfilename, true, code);[/code]
第二种方法如下

这里要使用到
[code=csharp] File.AppendText()[/code]
这个方法,我们先来看看这个方法的签名
[code=csharp]  //
        // 摘要:
        //     创建一个 System.IO.StreamWriter,它将 UTF-8 编码文本追加到现有文件。
        //
        // 参数:
        //   path:
        //     要向其中追加内容的文件的路径。
        //
        // 返回结果:
        //     一个 StreamWriter,它将 UTF-8 编码文本追加到现有文件。[/code]
方法如下
[code=csharp]        /// <summary>
        /// 追加文件
        /// </summary>
        /// <param name="Path">文件路径</param>
        /// <param name="strings">内容</param>
        public static void FileAdd(string Path, string strings)
        {
            StreamWriter sw = File.AppendText(Path);
            sw.Write(strings);
            sw.Flush();
            sw.Close();
            sw.Dispose();
        }[/code]
这里有一个要求是就要先将字符转成Utf-8,否则可能会出现乱码的情况,
如果大家对编码有特殊需求的话我建议使用第一种,如果没有的话建议使用第二种方法
好了大家自己做做测试吧

[groupid=74]sufeinet总群[/groupid]




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4