首頁 >後端開發 >C++ >在 C# 中向 CSV 檔案寫入多行時如何防止覆蓋?

在 C# 中向 CSV 檔案寫入多行時如何防止覆蓋?

Susan Sarandon
Susan Sarandon原創
2025-01-23 02:57:10712瀏覽

How Can I Prevent Overwriting When Writing Multiple Rows to a CSV File in C#?

C# 中將資料寫入 CSV 檔案:逐行方法

在 C# 中,可以逐行將資料寫入 CSV 檔案。假設您需要使用循環將多行資料寫入檔案。但是,您遇到了一個問題,即只有最後一行被寫入並覆蓋了前面的行。

為了解決這個問題,請遵循以下方法:

  1. 使用 StringBuilder: 不要為每一行直接寫入文件,而是將行資料累積到一個 StringBuilder 中。這可以防止不必要的寫入文件操作。
  2. 格式化行: 使用字串格式化來建立格式為「,」的行資料。 第二個值>第一個值>
  3. 追加到 StringBuilder: 使用 AppendLine 將每行格式化的資料追加到 StringBuilder 中,以便追蹤所有行。
  4. 一次性寫入檔案: 循環結束後,使用File.WriteAllText 或File.AppendAllText 將StringBuilder 的內容寫入文件,取決於您是想覆蓋現有資料還是追加到現有數據。

使用這種方法,您的程式碼可能如下所示:

<code class="language-csharp">StringBuilder csv = new StringBuilder();

// 循环遍历数据行
string first = reader[0].ToString();
string second = image.ToString();
string newLine = $"{first},{second}";
csv.AppendLine(newLine);

// 循环结束后写入文件
File.WriteAllText(filePath, csv.ToString());</code>

透過利用 StringBuilder 和延遲寫入,您可以有效地將所有資料行寫入 CSV 檔案而不會發生覆蓋。

以上是在 C# 中向 CSV 檔案寫入多行時如何防止覆蓋?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn