json 为什么WriteAllText()省略了要写入的字符串部分?[关闭]

bprjcwpo  于 2023-06-07  发布在  其他
关注(0)|答案(1)|浏览(342)

**已关闭。**此问题为not reproducible or was caused by typos。目前不接受答复。

此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题在这里可能是on-topic,但这个问题的解决方式不太可能帮助未来的读者。
9小时前关闭。
Improve this question
我正在Unity中开发一个游戏,我遇到了WriteAllText()的问题,我想在文件中写入字符串的一部分。我正在尝试将一些分数列表(有史以来最好的,本周最好的)保存到. json中。下面是我的代码:

public void Set(leveldata mydata,string filename)
{
    string jsonstring = JsonUtility.ToJson(mydata,true);
    Debug.Log(jsonstring);

    System.IO.File.WriteAllText(Application.persistentDataPath + "/" + filename, jsonstring);
}

该文件已经包含一些分数,唯一的变化是一个新的分数被添加到“周”和“所有时间”列表。不过这并不重要,因为WriteAllText()应该会覆盖任何现有文件。
以下是一些说明症状的图片:左边是Debug.Log(jsonstring)的输出,右边是执行后文件的内容。我在用一个文本比较网站。
最新的分数出现在jsonstring中,但不在“本周最佳”列表中的文件中:
x1c 0d1x新的分数(用蓝色突出显示)在我的jsonstring字符串中,但没有出现在“周”列表中的文件中。
同样的分数正确地出现在“最佳时间”列表中:


在我的jsonstring字符串和“alltime”列表中的文件中都有相同的分数。
我已经测试了好几次,应该添加到“周”列表中的分数一直被WriteAllText()指令遗漏...你知道为什么吗?我还仔细检查了代码的其余部分,尽管我不认为问题可能来自WriteAllText()以外的任何地方,因为debug.Log(jsonstring)显示的正是我期望在文件中看到的内容。谢谢!

h43kikqp

h43kikqp1#

该文件几乎立即被我代码中其他地方的另一个函数调用所覆盖。功能没有任何问题。感谢@derHugo帮助我找到我的错误!

相关问题