/**
* 找到文档的前三个字节并自动判断文档类型*/
private static String getTextCode(String filePath) {
String textCode = "";
try {
FileInputStream fileIS = new FileInputStream(filePath);
BufferedInputStream buf = new BufferedInputStream(fileIS);
buf.mark(4);
byte[] first3bytes = new byte[3];
buf.read(first3bytes);
buf.reset();
if (first3bytes[0] == (byte) 0xEF && first3bytes[1] == (byte) 0xBB
&& first3bytes[2] == (byte) 0xBF) {
textCode = "utf-8";
} else if (first3bytes[0] == (byte) 0xFF
&& first3bytes[1] == (byte) 0xFE) {
textCode = "unicode";
} else if (first3bytes[0] == (byte) 0xFE
&& first3bytes[1] == (byte) 0xFF) {
textCode = "utf-16be";
} else if (first3bytes[0] == (byte) 0xFF
&& first3bytes[1] == (byte) 0xFF) {
textCode = "utf-16le";
} else {
textCode = "GBK";
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return textCode;
}