Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menulis Baris Data mengikut Baris ke Fail CSV dalam C# Tanpa Tulis Ganti?

Bagaimana untuk Menulis Baris Data mengikut Baris ke Fail CSV dalam C# Tanpa Tulis Ganti?

DDD
Lepaskan: 2025-01-23 03:07:10
asal
726 orang telah melayarinya

How to Write Data Row by Row to a CSV File in C# Without Overwriting?

Menambahkan Data pada Fail CSV dalam C# tanpa Tulis Ganti

Artikel ini menangani cabaran biasa untuk menambahkan baris data demi baris ke fail CSV dalam C# tanpa menulis ganti data sedia ada. Kaedah asal, menggunakan File.WriteAllText(), mengakibatkan kehilangan data. Pendekatan yang dipertingkatkan ini menggunakan teknik yang lebih cekap dan mantap.

Masalah dengan File.WriteAllText()

Menulis secara langsung setiap baris menggunakan File.WriteAllText() menimpa fail berulang kali, meninggalkan hanya baris bertulis terakhir.

Penyelesaian: Menggunakan StringBuilder untuk Kecekapan

Penyelesaian yang paling cekap melibatkan penggunaan StringBuilder untuk mengumpul semua baris dalam ingatan sebelum menulis ke fail. Ini meminimumkan operasi I/O cakera, meningkatkan prestasi, terutamanya apabila berurusan dengan sejumlah besar baris.

Berikut ialah fungsi yang dipertingkatkan:

<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>
Salin selepas log masuk

Kod ini:

  1. Mencipta StringBuilder untuk menyimpan data CSV.
  2. Lelaran melalui setiap elemen rowData.
  3. Memformat setiap baris menggunakan interpolasi rentetan ($"..."). Sesuaikan ini supaya sepadan dengan struktur data khusus anda.
  4. Menambahkan baris yang diformatkan pada StringBuilder menggunakan AppendLine().
  5. Akhir sekali, tulis rentetan CSV lengkap pada fail menggunakan File.WriteAllText(). Ambil perhatian bahawa ini akan timpa fail; lihat bahagian seterusnya untuk ditambahkan.

Alternatif: Menambah dengan File.AppendAllText()

Untuk menambah baris pada fail CSV sedia ada, gunakan File.AppendAllText():

<code class="language-csharp">// ... (same StringBuilder logic as above) ...

File.AppendAllText(filePath, csv.ToString());</code>
Salin selepas log masuk

Kaedah ini menambahkan kandungan csv.ToString() pada penghujung fail, mengekalkan data sedia ada. Ini biasanya lebih disukai untuk kemas kini tambahan kepada CSV.

Penambahbaikan Selanjutnya

  • Pengendalian Ralat: Tambahkan try-catch blok untuk mengendalikan kemungkinan pengecualian seperti IOException.
  • Pengesahan Data: Laksanakan pengesahan data untuk memastikan integriti data dan menangani isu pemformatan yang berpotensi.
  • Baris Pengepala: Tambahkan logik untuk menulis baris pengepala jika perlu.
  • Pemformatan Baris yang Lebih Teguh: Untuk jenis data yang kompleks atau koma yang berpotensi dalam medan, pertimbangkan untuk menggunakan pustaka CSV untuk pengendalian yang lebih mantap. Perpustakaan ini selalunya menyediakan mekanisme melarikan diri dan memetik.

Pendekatan yang dipertingkatkan ini menyediakan cara yang lebih cekap dan boleh dipercayai untuk mengurus penulisan fail CSV dalam C#. Ingat untuk menyesuaikan pemformatan baris dengan struktur data khusus anda.

Atas ialah kandungan terperinci Bagaimana untuk Menulis Baris Data mengikut Baris ke Fail CSV dalam C# Tanpa Tulis Ganti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan