StreamWriter 不写所有字符

StreamWriter not writing all characters

我有这段代码 运行 当人们关闭游戏以保存他们当前选择的所有宠物时(这是给学校的,不要担心我如何命名它 "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);                               
    }
}

逗号是 space,我只是添加了自动刷新来尝试解决问题,但基本上无论我 运行 多少次,前两次,接下来的两次,和最后 3 条数据之间没有 spaces,例如:32SQUIRTLE 77AQUATIC 41930。每次我 运行 它都会发生这种情况,想知道是否有人知道它为什么这样做?如果 space 和逗号因 StreamWriter 或其他东西而臭名昭著,我也可以使用任何定界符。

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

你想做的是p.PetID.ToString() + " "