2013-01-11 100 views
1

我正在向streamwriter和stringbuilder發送幾個字典,但只有一個字典的信息顯示在我的輸出文件中。我不知道該怎麼做才能讓所有內容一次輸出,代碼如下,謝謝!stringbuilder或streamwriter覆蓋信息

public void RunReport() 
{ 
    CSVProfileCreate(genderKeys, genderValues); 
    CSVProfileCreate(ageKeys, ageValues); 
} 

public void CSVProfileCreate<T>(Dictionary<T, string> columns, Dictionary<T, int> data) 
{ 
    using (StreamWriter write = new StreamWriter("c:/temp/testoutputprofile.csv")) 
    { 
     StringBuilder output = new StringBuilder(); 

     IEnumerable<string> col = columns.Values.AsEnumerable(); 
     IEnumerable<int> dat = data.Values.AsEnumerable(); 

     for (int i = 0; i < col.Count(); i++) 
     { 
      output.Append(col.ElementAt(i)); 
      output.Append(","); 
      output.Append(dat.ElementAt(i)); 
      output.Append(","); 
      output.Append(Environment.NewLine); 
     } 

     write.Write(output); 
    } 
} 
+1

瑞恩你想寫信給在本地機器或遠程位置不應該的路徑@「c:\ temp \ testoutput.csv」 – MethodMan

+0

thx,我會得到改變。 –

+0

你怎麼使用StreamWriter和StringBuilder ..?而不是使用StringBuilder,嘗試使用TextWriter – MethodMan

回答

2

嘗試調用

write.Flush(); 

寫操作後。

編輯:

不好意思,剛纔又讀你的問題,

嘗試:

using (StreamWriter write = new StreamWriter("c:/temp/testoutputprofile.csv", true)) 
+0

什麼都沒有:(,沒有工作,雖然感謝! –

+0

排序的工作:)哈哈,現在我看到一組信息被輸入兩次到文件中。 –

+0

不等,我意識到發生了什麼,它的工作,謝謝! –