Java:InputStream读取文本文件内容出现乱码问题的解决方法

您所在的位置:网站首页 stream乱码 Java:InputStream读取文本文件内容出现乱码问题的解决方法

Java:InputStream读取文本文件内容出现乱码问题的解决方法

2023-07-23 16:22| 来源: 网络整理| 查看: 265

今天,使用字节输入流InputStream来读取一个文本文件的内容,然后复制到另一个文件里,实现文件复制这样的一个需求。但是,在实际操作的时候,发现复制后的文件的内容部分乱码 我的代码: 一个简单的复制文件的代码 然而实际效果却让我不明所以。 这是呵呵.txt的内容 这里写图片描述 复制后的茶道.txt的内容却是 这里写图片描述 分析一下,中文能出来,说明不是字符集问题,但是就是某些汉字会乱码。询问老师后,老师告诉我,这是因为一个汉字是2-4字节,而空格之类的是半个字节,缓冲区是12字节,有可能是读到了半个汉字,就会出现这种结果。 好吧,知道了问题出在哪后,就来解决吧 方法一: 使用转换流 转换流:将字节输入输出流转换成字符输入输出流 有两个,分别是InputStreamReader(InputStream in)【字节输入转换流】 OutputStreamWriter(OutputStream out)【字节数出转换流】 作用:解决文件读取时出现的中文乱码问题 就像这样 这里写图片描述 需要注意的是,它把字节输入流转换成字符输入流,所以缓冲区也就相应变成字符数组 效果如下 这里写图片描述

方法二: 扩大缓冲区容量,一次性存储完整个内容 这里写图片描述 这里我把缓冲区容量扩大到512,能够装下整个文件内容,结果就好了 这里写图片描述

好了,问题应该能够解决。如果不可以,可以查看是不是文件的字符集出问题了,右键文件的Properties里面的Text File enconding是不是有问题。

2017/8/2 19:23 Slicenfer



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3