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

Java中BufferedWriter与FileWriter无法写入文件问题排查

可能的问题及解决方案
  • 空异常捕获导致错误无提示
    你的saveIsland()方法里的catch块是空的,如果写入island.txt时发生异常(比如权限不足、磁盘已满),不会输出任何错误信息,甚至会掩盖真实问题。修改成以下代码,就能看到具体错误原因:

    catch (Exception e) {
        System.out.println("保存岛屿数据失败: " + e.getMessage());
        e.printStackTrace();
    }
    
  • 相对路径导致文件位置不符预期
    使用"player.txt"这类相对路径时,文件会生成在程序运行的当前工作目录,而非项目的源代码目录。比如在IDEA中运行,文件会存放在项目根目录下;用命令行运行时,存放在你执行java命令的文件夹里。先去这些路径下查找文件,确认是否已经生成。

  • 静态字段未实际赋值
    Player类的所有字段都是默认静态值(比如name是空字符串、money是0),如果游戏过程中没有修改这些值,写入文件的内容会是大量空行和0,看起来像没写入,实际是写入了空内容。检查游戏逻辑中是否正确给这些静态字段赋值。

  • 追加模式导致内容叠加
    你用了FileWriter的追加模式(第二个参数为true),每次保存都会在文件末尾追加内容,不会覆盖旧数据。如果多次保存,文件会积累多份进度,可能让你误以为没写入新内容。如果需要覆盖旧进度,把第二个参数改成false或者删除旧文件后再写入。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 12:20:31