File fl=new File("./a.txt");
FileInputStream fis=new FileInputStream(fl);
InputStreamReader isr;
int a = fis.read();
int b = fis.read();if(a==0xEF&&b==0xBB) { //1 UTF-8
isr=new InputStreamReader(fis,"UTF-8");
} else if(a==0xE6&&b==0xB1) { //2 GBK should use UTF-8isr=new InputStreamReader(fis,"UTF-8");
} else if(a==0xFE&&b==0xFF){ //3 gb2312
isr=new InputStreamReader(fis,"GB2312");
}else if(a==0xFF&&b==0xFE) { //4 Unicode------
isr=new InputStreamReader(fis,"Unicode");
}else{//ANSI use gbk
isr=new InputStreamReader(fis,"GBK");
System.out.println("Can't detect the encode mode!");
}
fis.close();