if (!File.Exists("SwitchFailure.txt"))
                    {
                        FileStream fs1 = new FileStream("SwitchFailure.txt", FileMode.Create, FileAccess.Write);//创建写入文件 
                        StreamWriter sw = new StreamWriter(fs1);
                        sw.WriteLine("DocNo:" + dt.Rows[i][1].ToString().Trim() + "\r\nDocRev:" + dt.Rows[i][2].ToString().Trim()+"\r\n---------------------\r\n");//开始写入值
                        sw.Close();
                        fs1.Close();
                    }
                    else
                    {
                        FileStream fs = new FileStream("SwitchFailure.txt", FileMode.Open, FileAccess.Write);
                        StreamWriter sr = new StreamWriter(fs);
                        sr.WriteLine("\r\nDocNo:" + dt.Rows[i][1].ToString().Trim() + "\r\nDocRev:" + dt.Rows[i][2].ToString().Trim()  + "\r\n---------------------");
                        sr.Close();
                        fs.Close();
                    }爲什麽後面寫入值就覆蓋了前面的值呢,就是只保留了最後一組值。求高手解答。

解决方案 »

  1.   

    也是一新手 ,
    应该是这个错了FileStream fs = new FileStream("SwitchFailure.txt", FileMode.Open, FileAccess.Write);
    创建文件流,追加文件,不是FileMode.Open,应该是FileMode.Append
    不然每次文件指针都是指向开头的
      

  2.   

    else
                        {
                            FileStream fs = new FileStream("SwitchFailure.txt", FileMode.Open, FileAccess.Write);
                            StreamWriter sr = new StreamWriter(fs);
                            sr.WriteLine("\r\nDocNo:" + dt.Rows[i][1].ToString().Trim() + "\r\nDocRev:" + dt.Rows[i][2].ToString().Trim()  + "\r\n---------------------");
                            sr.Close();
                            fs.Close();
                        }
    这里面的     FileMode.Open改为      FileMode.Append