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