首页 >后端开发 >C++ >在 C# 中向 CSV 文件写入多行时如何防止覆盖?

在 C# 中向 CSV 文件写入多行时如何防止覆盖?

Susan Sarandon
Susan Sarandon原创
2025-01-23 02:57:10749浏览

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