开发者社区> 问答> 正文

关于 java 读取 txt 文件乱码的问题:报错

请教大侠一个问题,这个问题困扰了我好久,就是 java 读取 txt 文件乱码,这种乱码只是个别字符乱码,而不是全部乱码,该 txt 文件生成时使用 gbk 编码,使用 win 记事本打开后一切正常,但是使用 java 读取后总有个别字符发生乱码(多部分为一些汉字),我一般使用如下方式读取文件:

InputStream is = new FileInputStream("xxx.txt");

byte[] tmp = new byte[512];

int len;

StringBuilder content = new StringBuilder();

while((len = is.read(tmp)) != -1){

    content.append(new String(tmp, 0, len, "GBK"));

}

is.close;

请问大侠到底是哪里出了问题,是不是程序读取的方法有些问题,谢谢了!

展开
收起
kun坤 2020-06-07 20:03:26 1473 0
2 条回答
写回答
取消 提交回答
  • 使用BufferedReader等支持编码

    2020-06-23 17:51:26
    赞同 展开评论 打赏
  • 你读取的是字节,一个汉子单个字节表示不了的,你读取的时候有些被截断了,自然出问题了,还是用reader指定编码读取吧,如ls。######谢谢了,多谢您的指点,问题解决了。######+1######应该是编码不一致的问题,你可以查看一下txt文件的编码,注意到程序中你用的是GBK######gb2312 gb18030######

    用InputStreamReader来转成BufferedReader来读取试试。

    2020-06-07 20:03:31
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载