Не могу написать в CSV

Это первый раз, когда я использую CSV и C#.

Это код, его запуск и создание CSV, но он ничего не пишет.

Код:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;

namespace csv
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        TextWriter sw = new StreamWriter("C:\\Data.csv");
        string Var1 = "5";
        string Var2 = "325,22";
        private void button1_Click(object sender, EventArgs e)
        {
            sw.WriteLine("{0}","{2}", Var1,Var2);
        }
    }

2 ответа

Решение

Есть методы, доступные в File класс, который упростит то, что вы пытаетесь сделать.

Ты можешь позвонить AppendAllText и он создаст файл, если необходимо, или просто добавит к нему.

File.AppendAllText(@"C:\Data.csv", string.Format("{0}{1}\r\n", Var1, Var2));

Теперь вам не нужно создавать TextWriter так что вы можете удалить эти пару строк.

(Если вы хотите придерживаться TextWriter тогда ответ Гусмана - то, что вам нужно - не оставляйте поток открытым дольше, чем вам нужно.)

Он пишет, но вы проверяете, не закрывая свою программу.

Потоки не сбрасываются мгновенно, они кэшируются, это зависит от того, сколько символов вы написали, но, конечно, если вы вызовете Flush() или Close(), это очистит весь контент.

Так что Close() вашего Stream, даже лучше, окружить код

using (var sw = new StreamWriter("C:\\Data.csv"))
{
    //your code
}
Другие вопросы по тегам