c# 循环多次向txt文本中输入数据,使后一次的数据不覆盖上一次的数据
static void getTrainFeature(String source_f, String feature_f)
         {
             StreamReader reader = new StreamReader(source_f, System.Text.Encoding.Default);
             String content = reader.ReadToEnd();
             reader.Close();
             String[] sentences = content.Split('\n');
             for (int i = 0; i < sentences.Length; i++)
             {
                 String[] sentences_part = sentences[i].Split(':');
                 String feature = sentences_part[0];
                 String f1 = "";//特征1:连续标点符号
                 String f2 = "";//特征2:第一第二人称+表达意见的动词
                 String f3 = "";//特征3:停用词
                 String f4 = "";//特征4:情感标点符号
                 f1 = Match1(sentences[i]);//得到特征1
                 f2 = Match2(sentences[i]);//得到特征2
                 f3 = Match3(sentences[i]);//得到特征3
                 f4 = Match4(sentences[i]);//得到特征4
                 String path = feature_f;
                 FileStream file = new FileStream(path, FileMode.Open);
                 StreamWriter read = new StreamWriter(file, Encoding.Default);
                 read.Write("\t" + f1 + "\t" + f2 + "\t" + f3 + "\t" + f4 + "\n");
                 read.Close();
                 file.Close();
             }  
         }    
以上代码我想通过循环,在txt文本中分行记录每次循环得到的值,可是我的source_f中无论有几行代码,生成的文本中都只有一行,请问怎么输出才能不覆盖呢
------解决方案--------------------StreamWriter read = new StreamWriter(file, Encoding.Default);
更改为:
StreamWriter read = new StreamWriter(file, true, Encoding.Default);
表示追加。
------解决方案--------------------File.AppendAllText("", "", Encoding.UTF8);
------解决方案--------------------直接用File.AppendAllText()方法就行了,无需搞那么复杂。
------解决方案--------------------sorry。。。看错了,以为变量file是个path呢。
FileStream file = new FileStream(path, FileMode.Open);
改为:
FileStream file = new FileStream(path, FileMode.Append);
如果这句代码中的file是个路劲的话,就可以这么写:
StreamWriter read = new StreamWriter(file, true, Encoding.Default);