利用InputStreamReader的read()方法读取时有乱码

来源:5-1 字节字符转换流

for__what

2017-03-27 19:42

读取.docx结尾的文件时有乱码,读取.txt文件时控制台正常输出


public static void main(String[] args) throws IOException{

InputStreamReader in=new InputStreamReader(new FileInputStream("F:\\src.docx"),"gbk");

int c;

while((c=in.read())!=-1){

System.out.print((char)c);

}

/*char[] buf=new char[200];

int c;

while((c=in.read(buf,0,buf.length))!=-1){

String s=new String(buf,0,buf.length);

System.out.print(s);

}*/

in.close();

}


写回答 关注

2回答

  • 阳光下的雾
    2017-03-29 16:26:17

    Java里的char是utf-8编码的吧,而你用的gbk编码读入

  • 磁电耦合
    2017-03-29 16:16:30

    是不是你读的docx文件本身不是gbk编码,是其他的编码方式?

文件传输基础——Java IO流

为您介绍IO流的使用,以及对象的序列化和反序列化的内容

133754 学习 · 1030 问题

查看课程

相似问题