FileReader读取文件出现乱码的解决办法

  之前用FileReader读取文件时输出控制台发现出现了中文乱码,考虑到应该是编码格式不一致的问题导致的,这里在本地创建的一个txt文本文件,默认保存的文件编码格式是ANSI,那么FileReader在读取文件的编码格式一定是和文件编码格式不一致导出出现乱码的,首先想到的是指定一下FileReader读取文件的编码格式,但是看了一下FileReader的源码见下图
  这里写图片描述

  这里写图片描述
  
  简单翻译一下就是FileReader在读取文件的时候采取的是系统默认的编码格式,在cmd命令行通过chcp查看一下编码格式,发现代码页为936表示系统默认编码格式为GBK与windows 文本文件默认编码格式不一致,所以必然会出现乱码,而且比较坑爹的是FileReader在读取文件的时候不能指定特定的编码格式,如果你想要指定自己的编码格式读取文件,那就在FileInputStream外面嵌套InputStream 来代替FileReader,之后指定编码格式即可,简单来说读取文件用下面的代码即可

InputStreamReader inputStreamReader = new InputStreamReader( new FileInputStream(path),"UTF-8");   

  这里还需要注意一点,这里指定的编码格式要与文本的编码格式一致,否则还是会出现乱码,通过文件另存为指定一下编码格式即可

  这里写图片描述

  • 12
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

梦岚如雪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值