C# Can';无法写入CSV

C# Can';无法写入CSV,c#,csv,streamwriter,textwriter,C#,Csv,Streamwriter,Textwriter,这是我第一次使用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.Window

这是我第一次使用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);
        }
    }

它确实会写,但您在检查时没有关闭程序

流不会立即刷新,它们是缓存的,这取决于您编写了多少个字符,但当然,如果调用flush()或Close(),它将刷新所有内容

因此,关闭()流,更好的是,用

using (var sw = new StreamWriter("C:\\Data.csv"))
{
    //your code
}

它确实会写,但您在检查时没有关闭程序

流不会立即刷新,它们是缓存的,这取决于您编写了多少个字符,但当然,如果调用flush()或Close(),它将刷新所有内容

因此,关闭()流,更好的是,用

using (var sw = new StreamWriter("C:\\Data.csv"))
{
    //your code
}

中有一些方法可以简化您尝试执行的操作

您可以调用
AppendAllText
,它将在需要时创建文件,或者简单地添加到文件中

File.AppendAllText(@"C:\Data.csv", string.Format("{0}{1}\r\n", Var1, Var2));
现在您不需要创建
TextWriter
,因此可以删除这两行


(如果您想坚持使用
TextWriter
,那么Gusman的答案就是您所需要的-不要让流打开的时间超过您所需要的时间。)

中有一些方法可以简化您尝试执行的操作

您可以调用
AppendAllText
,它将在需要时创建文件,或者简单地添加到文件中

File.AppendAllText(@"C:\Data.csv", string.Format("{0}{1}\r\n", Var1, Var2));
现在您不需要创建
TextWriter
,因此可以删除这两行


(如果您想继续使用
TextWriter
,那么Gusman的答案就是您需要的-不要让流打开的时间超过您需要的时间。)

该代码不会释放该文件的句柄。它实际上会被锁定,直到你的应用程序终止。该代码不会释放该文件的句柄。它基本上会被锁定,直到你的应用程序终止。刚刚学会了一个新想法,谢谢。刚刚学会了一个新想法,谢谢。我使用了close,它成功了,谢谢;但我将使用AppendAllText;我认为这是一种更好的方法。是的,如果你想将文本追加到文件中,AppendAllText将是最简单、更不容易出错的解决方案:)我使用了close,它成功了,谢谢;但我将使用AppendAllText;我认为这是一种更好的方法。是的,如果您想将文本追加到文件中,AppendAllText将是最简单且不易出错的解决方案:)