为什么DataInputStream和DataOutputStream读写文件时乱码?最好用文字说明,谢谢啊

 我来答
willower
2012-03-07 · TA获得超过155个赞
知道答主
回答量:27
采纳率:0%
帮助的人:43.8万
展开全部
DataInputStream和DataOutputStream提供了对java相应数据类型读写的流操作方法,但是由于各个数据类型的长度都不太一样,所以读写的时候一定要一一对应。
例如一个int类型占4个字节,一个double类型占8个字节...而DataInputStream和DataOutputStream是字节流,一个字节一个字节写入的,如果你开始存入一个4字节的int类型,然后存入8字节的double类型,读取的时候先读取8字节的double类型就会讲int类型的4个字节,和double数据的前4个字节一起读出来,最终造成了乱码。所以写入的数据类型顺序一定要对应读取的数据类型顺序。

还有一种可能就是你编码格式的不统一造成的,jvm默认的编码格式是utf-16,而如果你在输入输出流中使用了别的编码格式,如utf-8,或者gbk等等都会造成乱码。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式