原因一:将txt文件的内容转为IO流 与 byte[] 转 String 所用的编码不一致(byte[]:用于存读取的数据)。
原因二 : 字节流是以字节单位读取的,假设用一个 byte bytes[] = new byte[11];去接收文本里面有4个汉字的txt文档的IO流。
此时假设编码格式为UTF-8,UTF-8存储一个汉字需要3个字节。也就是说bytes.length>=3*4 才能一次性接收,但我现在bytes数组开辟的空间是11,也就是说需要接收2次。这时候问题就产生了,一个汉字是3个字节,最后一个字的3个字节被拆成了两部分,当你打印的时候,结果显然会出问题。
原因一 解决方式:打开txt文档 点另存为,对话框最下面 可以看到该txt的编码格式
<