StreamWriter不写所有字符

时间:2016-11-04 16:18:26

标签: c# streamwriter

当人们关闭游戏以保存所有他们当前选择的宠物时,我会运行这些代码(这是为了学校不要担心我如何命名它" Squirtle",没有版权问题这里)。有问题的代码是:

using (StreamWriter sw = File.CreateText(@"..\..\pets.txt"))
{
    sw.AutoFlush = true;
    foreach (Pet p in petList)
    {
        sw.Write(p.PetID + ' ');
        sw.Write(p.Name + ' ');
        sw.Write(p.HP + ' ');
        sw.Write(p.Type + ' ');
        sw.Write(p.Level + ' '  );
        sw.Write(p.Rarity + ' ');
        sw.WriteLine(p.Speed);                               
    }
}

逗号是空格,我只是添加了autoflush来尝试修复问题,但基本上无论我运行多少次,前两个,后两个和最后3个数据之间都没有空格,例如:32SQUIRTLE 77AQUATIC 41930.每当我运行它时都会发生这种情况,我想知道是否有人知道它为什么要这样做?如果使用StreamWriter或其他东西,空格和逗号都是臭名昭着的话,我也可以使用任何分隔符。

1 个答案:

答案 0 :(得分:8)

您正在执行Int + Char,此操作的重载将导致Int + (int) Char将空间转换为其Unicode代码点并进行算术运算

您要做的是p.PetID.ToString() + " "