C# Can';无法写入CSV
这是我第一次使用csv和c 这是代码,它正在运行,并创建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
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将是最简单且不易出错的解决方案:)