You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:基于XML实现文本冒险游戏角色数据存读及IO异常解决

DND文本冒险游戏MVP:角色数据存读问题与解决方案

项目背景

我正在为许久未玩桌面游戏的DND玩家开发一款文本冒险游戏的MVP,目前所有核心系统均已正常运行,但角色数据的存读功能尚未实现。最初尝试了二进制序列化,之后改为使用XML序列化,但对XML的存读实现完全不了解(附Player类结构截图)。

遇到的文件访问异常

后续尝试用StreamWriter和StreamReader实现存读时,突然出现以下异常:

IOException: The process cannot access the file 'D:\test\Game1.txt' because it is being used by another process.
此前功能运行正常,无任何改动的情况下突然无法访问目标文件。

最终解决方案

经过排查,找到两个关键解决点:

  • 避免创建静态的StreamWriter/StreamReader实例指向同一文件,这类静态实例会长期占用文件句柄,导致存读操作互相阻塞。正确的做法是在每个存读方法内部临时创建实例,使用完毕后自动释放资源。
  • 使用StreamWriter.WriteLine()和StreamReader.ReadLine()按行处理数据,文件路径支持两种形式:完整绝对路径(如D:\test\Game1.txt)或相对默认路径(如game1.xml)。

内容的提问来源于stack exchange,提问作者Dredin 47

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 01:20:40