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);