解决:Java中I/O流输出数据不完整的问题

一·问题描述:

1.利用Java转换流去复制一个json文件内容到新json文件中时,新json文件末尾总是会少一些数据。(具体如图所示)

(1)Java源代码截图
在这里插入图片描述

(2)原json文件字符长度截图
在这里插入图片描述
(3)新json文件字符长度截图:比原json文件少了很多字符数据
在这里插入图片描述

二·问题原因:

1.最后一次缓存空间中的数据,没能成功写入到目标文件中去

三·解决办法:

1.在将缓存数组数据循环写入目标文件结束时,刷新一下缓存空间;即:在循环输出数据结束之后,关闭输出流之前,调用一下输出流的flush()方法

/**
        * flush() 方法是清空,即清空缓冲区数据,就是说
        * 你用读写流的时候,其实数据是先被读到了内存中,
        * 然后用数据写到文件中,当你数据读完的时候不代表你的数据已经写完了,
        * 因为还有一部分有可能留在内存这个缓冲区中.这时候如果你调用了
        * close方法关闭了读写流,那么这部分数据就会丢失,
        * 所以应该再关闭读写流之前先flush(),显得清空数据.
        */

(1)最终Java源代码如图所示
在这里插入图片描述

四·测试结果:成功

(1)新json文件字符长度与原json文件字符长度一致,且提示报错消失
(2)本次json文件长度都为47588
在这里插入图片描述
(3)数据结果被json格式解析成功
在这里插入图片描述

五·相关链接:

1.解决:Java中I/O流读取数据不完整的问题

https://blog.csdn.net/weixin_48033662/article/details/124701372

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ideal-cs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值