privateString getCharset(String fileName) throws IOException{
BufferedInputStream bin = new BufferedInputStream(newFileInputStream(fileName));
int p = (bin.read() << 8) +bin.read();
String code = null;
switch (p) {
case 0xefbb:
code = "UTF-8";
break;
case 0xfffe:
code = "Unicode";
break;
case 0xfeff:
code = "UTF-16BE";
break;
default:
code = "GBK";
}
return code;
}
publicString getTextFromText(String filePath){
try {
InputStreamReader isr = new InputStreamReader(newFileInputStream(filePath),getCharset(filePath));
BufferedReader br = newBufferedReader(isr);
StringBuffer sb = new StringBuffer();
String temp = null;
while((temp = br.readLine()) != null){
sb.append(temp);
}
br.close();
return sb.toString();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
JAVA讀取不同編碼格式的TXT文件
最近做一個全文檢索的功能,要求在用戶上傳附件時獲取其內容存入數據庫,CSV,EXCEL,WORD,PPT都搞定了。剩餘一個最簡單的TXT文檔,開始忽略了它還有不同編碼,導致一些編碼格式的文本亂碼。兼容寫法如下,一個判斷文件頭的方法搞定所有。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.