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

不使用JSON库能否将字符串写入.json文件 Java代码无输出问题

问题原因

  • 你使用的FileWriter属于带缓冲区的字符输出流,写入的内容会先保存在JVM的IO缓冲区中,只有缓冲区满、主动刷入缓冲区或者关闭流的时候,内容才会真正写入磁盘文件。你的代码没有执行上述操作,所以内容停留在缓冲区没有落盘,看不到写入的内容。

解决方案

方案1:主动刷入缓冲区(适合需要持续写入文件的场景)

写入完成后调用flush()方法主动将缓冲区内容刷入磁盘:

FileWriter file = new FileWriter("C:\\Test.json");
file.write("test");
file.flush();
// 后续可继续执行写入操作

方案2:写入完成后关闭流(适合单次写入完成的场景)

close()方法执行时会自动先刷入缓冲区再释放IO资源:

FileWriter file = new FileWriter("C:\\Test.json");
try {
    file.write("test");
} finally {
    file.close();
}

方案3:使用try-with-resources语法(最推荐,Java 7及以上版本支持)

该语法会自动在写入完成后关闭流,无需手动编写释放资源的代码,也能避免异常场景下的资源泄漏问题,你可以直接把拼接好的合法JSON字符串写入即可,不需要额外依赖JSON库:

try (FileWriter file = new FileWriter("C:\\Test.json")) {
    // 此处写入你自己拼接好的JSON格式化字符串即可
    file.write("test");
} catch (IOException e) {
    // 按需处理IO异常
    e.printStackTrace();
}

注意事项

手动拼接JSON字符串写入时,需要对内容中的双引号、换行符、转义字符等做合规转义,避免最终生成的JSON文件格式非法无法解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:36:03