输出到末尾的时候为啥会出错

输出到末尾的时候为啥会出错

末尾char未满10个字符,输出不正确是因为读入读出编码不同而造成了汉字占字节不同而导致的错误吗,汉字是占一个字符的,那么一个一个读出来,最后一个汉字怎么会和空字符连在一起而出错呢

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,同学说的输出来的不是乱码是指imooc1.txt中是乱码吗?如果都是用GBK,那么imooc.txt和imooc1.txt文件内容是一样的。

如下:

http://img1.sycdn.imooc.com//climg/5ee4b38009552abd00000000.jpg

如果问题没有解决,建议同学详细描述一下问题,提供一下Eclipse工作空间编码,imooc.txt文件内容和运行结果,方便老师检查。

祝学习愉快~

好帮手慕阿慧 2020-06-13 14:21:44

同学你好,你的理解是正确的。最后一个汉字和空字符连在一起而出错是因为读入读出编码不同。用IO流复制文件需要保证输入输出流的编码方式一样,否则会出现乱码。

祝学习愉快~

  • 提问者 慕UI2433440 #1
    我读入读出都用GBK但是用osw.write(cbuf)输出来的不是乱码,只是和读入的文件不同怎么回事
    2020-06-13 17:32:28
  • 提问者 慕UI2433440 #2
    我和你不同的是我用的是bw.write(cbuf)而你的是bw.write(cbuf,0,n),我不能理解的是汉字不是占一个字符吗,那字符读和写都是一个字符一个字符弄的,怎么会出字节那种错误呢
    2020-06-16 14:03:23
  • 好帮手慕阿慧 回复 提问者 慕UI2433440 #3
    同学你好,出现字节错误可能是编码不同的原因,建议同学确保Eclipse空间编码和文件读写编码都是一样的,imooc.txt文件没有乱码。 祝学习愉快~
    2020-06-16 14:42:58
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师