IO流操作时乱码问题

在做文件读写的过程中遇到以下问题:

  源文件格式为.txt,IO流读取操作完成后,读取到的前后字节数不同,

 

并且有乱码问题

 

 

 

打开文件后,发现拷贝后的文件中存在乱码,开始觉得可能仅仅只是txt文件编码的原因,于是将文件扩展名全都改为.doc文件,再次进行IO流读写操作

 

 

 

字节数还是和之前一样,在doc中也存在乱码

 

 

 

 

 

于是,我怀疑是我读取流的方式的原因,上面的代码我用的是字符流方式读

 

 

于是我换了读取方式,改用字节流:

 

 

查看文件的大小,没有之前么悬殊,但是字节流读取效率太低

 

 

文件中还存在乱码问题于是查找资料,得知是编码问题:

FileReader类读取文件时,调用的字节编码是java默认的utf-8,但是一般windows的txt默认是ANSII编码,所以需要转换字符编码,FileReade构造函数和方法成员都没有设置编码方法而InputStreamReader这个类有,因此套用它可实现转换字符编码目的

Bufferez

BufferedReader br= new BufferedReader(new InputStreamReader(new FileInputStream(filename),"GBK"));

 

注意:在读写时编码格式必须一致

今天的疑惑解除了~~~

 

 

猜你喜欢

转载自blog.csdn.net/xiaojinsanMM/article/details/81191169