C# 将格式化数据保存在新记事本文件中

C# 将格式化数据保存在新记事本文件中,c#,winforms,C#,Winforms,我在记事本文件中有以下数据格式: 123456: 7891011: 因此,通过以下代码,我可以替换每行中的冒号,并得到以下结果: var line = File.ReadAllLines("D:\\Sample.txt"); for (int i = 0; i < line.Length; i++) { var fields = line[i].Remove(30); MessageBox.Show(fields.ToString()); TextWri

我在记事本文件中有以下数据格式:

123456:
7891011:
因此,通过以下代码,我可以替换每行中的冒号,并得到以下结果:

var line = File.ReadAllLines("D:\\Sample.txt");

for (int i = 0; i < line.Length; i++)
{
     var fields = line[i].Remove(30);
     MessageBox.Show(fields.ToString());

     TextWriter txt = new StreamWriter("D:\\Demo.txt");

     txt.Write(line[i]);
     txt.Close();
}

但当我试图将格式化数据保存到新的记事本文件中时,它只保存一个数据。有什么我做错了吗?

您总是在线路循环中创建一个新的StreamWriter并覆盖现有数据。尝试:

var line = File.ReadAllLines("D:\\Sample.txt");
            using (TextWriter txt = new StreamWriter("D:\\Demo.txt"))
            {
                for (int i = 0; i < line.Length; i++)
                {
                    var fields = line[i].Remove(30);
                    //MessageBox.Show(fields.ToString());
                    txt.Write(line[i]);

                }

                txt.Close();
            }
var line=File.ReadAllLines(“D:\\Sample.txt”);
使用(TextWriter txt=new StreamWriter(“D:\\Demo.txt”))
{
for(int i=0;i
您总是在线路循环中创建一个新的StreamWriter并覆盖现有数据。尝试:

var line = File.ReadAllLines("D:\\Sample.txt");
            using (TextWriter txt = new StreamWriter("D:\\Demo.txt"))
            {
                for (int i = 0; i < line.Length; i++)
                {
                    var fields = line[i].Remove(30);
                    //MessageBox.Show(fields.ToString());
                    txt.Write(line[i]);

                }

                txt.Close();
            }
var line=File.ReadAllLines(“D:\\Sample.txt”);
使用(TextWriter txt=new StreamWriter(“D:\\Demo.txt”))
{
for(int i=0;i
或无关:
。删除(30)您确定吗,它将始终为30?专业提示:避免使用“神奇数字”。定义一个常量(或配置属性),使用它并记录为什么它的值与它的值完全相同。这总是固定的-30@Fildor。或无关:
。删除(30)您确定吗,它将始终为30?专业提示:避免使用“神奇数字”。定义一个常量(或配置属性),使用它并记录为什么它的值与它的值完全相同。这总是固定的-30@Fildor。