StreamWriter sw = File.AppendText(strPath);

解决方案 »

  1.   

    you can use  File.AppendText, or FileMode.Append
      

  2.   

    下面的示例将文本追加到文件。
    using System;
    using System.IO;class Test 
    {
        public static void Main() 
        {
            string path = @"c:\temp\MyTest.txt";
            // This text is added only once to the file.
            if (!File.Exists(path)) 
            {
                // Create a file to write to.
                using (StreamWriter sw = File.CreateText(path)) 
                {
                    sw.WriteLine("Hello");
                    sw.WriteLine("And");
                    sw.WriteLine("Welcome");
                }    
            }        // This text is always added, making the file longer over time
            // if it is not deleted.
            using (StreamWriter sw = File.AppendText(path)) 
            {
                sw.WriteLine("This");
                sw.WriteLine("is Extra");
                sw.WriteLine("Text");
            }            // Open the file to read from.
            using (StreamReader sr = File.OpenText(path)) 
            {
                string s = "";
                while ((s = sr.ReadLine()) != null) 
                {
                    Console.WriteLine(s);
                }
            }
        }
    }
      

  3.   

    但是我要追加文件流的时候,却不行
    fi      = new FileInfo(strPath);
    fStream = fi.Open(FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read);
    sw      = new StreamWriter(fStream,System.Text.Encoding.GetEncoding("Gb2312"));
    sw      = fi.AppendText();这时候报错,说文件流正在被一个进程读取.
      

  4.   

    fi      = new FileInfo(strPath);
    fStream = fi.Open(FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read);
    sw      = new StreamWriter(fStream,System.Text.Encoding.GetEncoding("Gb2312"));
    sw      = fi.AppendText();
    用一句话就可以了
    StreamWriter sw = File.AppendText(strPath);
    上面的4句去掉!
      

  5.   

    用File.AppendText或者 FileMode.Append
      

  6.   

    在写入中文的时候有问题,不过解决了.
    必须在每次写入的时候追加format参数.
    sw.WriteLine("你好",System.Text.Encoding.GetEncoding("Gb2312"));
    给分结贴