使用InputStreamReader()方法去除中文乱码

本文探讨了在Java中处理包含中文字符的文本文件时遇到的乱码问题。通过对比错误和正确的代码示例,文章详细解释了如何使用InputStreamReader和BufferedReader以UTF-8编码正确读取文件,避免乱码现象。

最近写代码发现直接使用BufferedReader()会出现乱码
要使用InputStreamReader()方法才不会出现乱码
错误示例:
import java.io.*;
public class EFile {
public static void main(String args[]) {
File file1,file2;
FileInputStream fis;
InputStreamReader isr;
BufferedReader br;
PrintWriter pw;
FileWriter fw;
FileReader fr;
try
{
char [] b=new char[1024];
file1=new File(“read.txt”);
file2=new File(“write.txt”);
//fis=new FileInputStream(file1);
fw=new FileWriter(file2);
fr=new FileReader(file1);
//isr=new InputStreamReader(fr,“UTF-8”);
br=new BufferedReader(fr);
pw=new PrintWriter(fw);
String str=null;
while((str=br.readLine())!=null){
System.out.println(str);
pw.println(str);
}
//fis.close();
//isr.close();
br.close();
br.close();
fw.close();
pw.close();
}catch(IOException e){
e.printStackTrace();
}
}

}
在这里插入图片描述
正确示例如下
import java.io.*;
public class EFile {
public static void main(String args[]) {
File file1,file2;
FileInputStream fis;
InputStreamReader isr;
BufferedReader br;
PrintWriter pw;
FileWriter fw;
try
{
char [] b=new char[1024];
file1=new File(“read.txt”);
file2=new File(“write.txt”);
fis=new FileInputStream(file1);
fw=new FileWriter(file2);
isr=new InputStreamReader(fis,“UTF-8”);
br=new BufferedReader(isr);
pw=new PrintWriter(fw);
String str=null;
while((str=br.readLine())!=null){
System.out.println(str);
pw.println(str);
}
fis.close();
isr.close();
br.close();
fw.close();
pw.close();
}catch(IOException e){
e.printStackTrace();
}
}

}在这里插入图片描述

那么我们做下如下总结,当你的文本里面出现汉字的时候,读取内容的时候,一定是要用到FileInputStream()、InputStreamReader()、BuffedReader()类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值