用buffer字符流拷贝文件时遇到中文出现乱码
时间: 2023-05-29 15:06:01 浏览: 690
Java字符流和字节流对文件操作的区别
出现乱码的原因是因为在使用buffer字符流读取和写入文件时,默认的字符编码是ASCII编码,而中文字符使用ASCII编码无法正确显示,需要使用UTF-8等支持中文的字符编码。
可以在创建BufferedReader和BufferedWriter对象时,指定字符编码为UTF-8,如下所示:
```
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(sourceFile), "UTF-8"));
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(targetFile), "UTF-8"));
```
其中,InputStreamReader和OutputStreamWriter可以将字节流转换为字符流,并指定字符编码为UTF-8。
这样就可以正确地拷贝包含中文字符的文件了。
阅读全文