在 C# 中將資料附加到 CSV 檔案而不覆蓋
本文解決了在 C# 中將資料逐行附加到 CSV 檔案而不覆蓋現有資料的常見挑戰。 最初的方法使用File.WriteAllText()
,導致資料遺失。 這種改進的方法使用了更有效率、更穩健的技術。
File.WriteAllText()
使用 File.WriteAllText()
直接寫入每一行會重複覆蓋文件,只留下最後寫入的行。
解:使用StringBuilder
提高效率
最有效的解決方案是使用 StringBuilder
在寫入檔案之前累積記憶體中的所有行。這可以最大限度地減少磁碟 I/O 操作,從而提高效能,尤其是在處理大量行時。
這是一個改進的功能:
<code class="language-csharp">var csv = new StringBuilder(); // Iterate through data rows foreach (var rowData in data) { // Format each row (adjust as needed for your data structure) var row = $"{rowData[0]},{rowData[1]}"; csv.AppendLine(row); } File.WriteAllText(filePath, csv.ToString()); </code>
此程式碼:
StringBuilder
來保存 CSV 資料。 rowData
元素。 $"..."
) 格式化每一行。 調整它以符合您的特定資料結構。 StringBuilder
將格式化的行附加到 AppendLine()
。 File.WriteAllText()
將完整的 CSV 字串寫入檔案。 請注意,這將覆蓋文件; 請參閱下一節的附加內容。 替代方案:附加 File.AppendAllText()
要將行新增至現有 CSV 文件,請使用 File.AppendAllText()
:
<code class="language-csharp">// ... (same StringBuilder logic as above) ... File.AppendAllText(filePath, csv.ToString());</code>
此方法將 csv.ToString()
內容新增至文件末尾,保留現有資料。 這通常是 CSV 增量更新的首選。
進一步增強
try-catch
區塊來處理潛在的異常,例如 IOException
.這種增強的方法提供了一種更有效率、更可靠的方式來管理 C# 中的 CSV 檔案寫入。請記住使行格式適應您的特定資料結構。
以上是如何在C#中將資料逐行寫入CSV檔案而不覆蓋?的詳細內容。更多資訊請關注PHP中文網其他相關文章!