// 转码
public String convertCodeAndGetText(String filePath) {
BufferedReader reader = null;
String text = "";
FileInputStream fis = null;
BufferedInputStream in = null;
InputStreamReader isr = null;
try {
File file = new File(filePath);
fis = new FileInputStream(file);
in = new BufferedInputStream(fis);
in.mark(4);
byte[] first3bytes = new byte[3];
// 找到文档的前三个字节并自动判断文档编码类型
if (first3bytes[0] == (byte) 0xEF && first3bytes[1] == (byte) 0xBB
&& first3bytes[2] == (byte) 0xBF) {
isr = new InputStreamReader(in, "utf-8");
reader = new BufferedReader(isr);
} else if (first3bytes[0] == (byte) 0xFF
&& first3bytes[1] == (byte) 0xFE) {
isr = new InputStreamReader(in, "unicode");
reader = new BufferedReader(isr);
} else if (first3bytes[0] == (byte) 0xFE
&& first3bytes[1] == (byte) 0xFF) {
isr = new InputStreamReader(in, "utf-16be");
reader = new BufferedReader(isr);
} else if (first3bytes[0] == (byte) 0xFF
&& first3bytes[1] == (byte) 0xFF) {
isr = new InputStreamReader(in, "utf-16le");
reader = new BufferedReader(isr);
} else {
isr = new InputStreamReader(in, "GBK");
reader = new BufferedReader(isr);
}
String str = adLine();
while (str != null) {
text = text + str + "n";
str = adLine();
}
reader.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (isr != null) {
try {
isr.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return text;
}
本文发布于:2024-01-29 07:43:45,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170648542813764.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |