你可以通过判断读取到txt文件的字节流中的字节的编码格式来自动判断文件的编码格式:
private String codetype(byte[] head) { //参数是txt文件的字节数组
byte[] codehead = new byte[4];
// 截取数组
System.arraycopy(head, 0, codehead, 0, 4);
String code = "";
if(head[0] == -1 && head[1] == -2) {
code = "UTF-16";
}
else if(head[0] == -2 && head[1] == -1) {
code = "Unicode";
}
else if(head[0] == -17 && head[1] == -69 && head[2] == -65)
code = "UTF-8";
else {
code = "gb2312";
}
return code;
}
然后你再根据获取到的编码格式,将输出流的编码格式设置成对应的格式就行了。 |